你怎么能不破坏窗口而恢复按下按钮的值呢?

2024-09-30 14:18:02 发布

您现在位置:Python中文网/ 问答频道 /正文

如何更改代码,以便使用按下的按钮的值,而不是破坏窗口

from tkinter import *

window=Tk()
window.geometry('905x560')

letters=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]


for i in range(len(letters)):

    ButtonLetter=Button(window, text=letters[i], command=window.destroy)
    ButtonLetter.place(x=905/9*(i-((i//9)*9))+35, y=225+100*(i//9))

window.mainloop()

Tags: 代码infromimportforlentkinterrange
1条回答
网友
1楼 · 发布于 2024-09-30 14:18:02

您需要将按钮中的command=window.destroy更改为要调用的请求函数

将按钮定义更改为以下内容,以便使用所按的按钮名称作为参数调用函数:

ButtonLetter=Button(window, text=letters[i], command=lambda name=letters[i]:pressed(name))

例如,运行以下代码:

from Tkinter import *

window=Tk()
window.geometry('905x560')

letters=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

def pressed(label):
    print label

for i in range(len(letters)):
    ButtonLetter=Button(window, text=letters[i], command = lambda name=letters[i]:pressed(name))
    ButtonLetter.place(x=905/9*(i-((i//9)*9))+35, y=225+100*(i//9))

window.mainloop()

相关问题 更多 >