我目前正在尝试创建一个拨号盘,以打印在外壳中按下的按钮。下面是我到目前为止掌握的代码:
from tkinter import Tk, Button, RAISED
root = Tk()
buttons = [['1','2','3'],
['4','5','6'],
['7','8','9'],
['*','0','#']]
def clicked():
print(Button)
for r in range(4):
for c in range(3):
button = Button(root,
relief = RAISED,
padx = 10,
text = buttons[r][c],
command = clicked)
button.grid(row = r, column = c)
root.mainloop()
***OUTPUT***
<class 'tkinter.Button'>执行时,拨号盘将正确显示,但按下按钮时,该数字不会打印在控制台中,而是打印上面的数字。对不起,如果这是我的一个简单的错误,但我试图教自己Python,仍然是相对较新的。
任何帮助都将不胜感激。
发布于 2015-12-06 02:39:25
您基本上是传递Tk按钮,但是您需要传递按钮值,为了安全和好的方法,只需使用部分
from Tkinter import Tk, Button, RAISED
from functools import partial
root = Tk()
buttons = [['1','2','3'],
['4','5','6'],
['7','8','9'],
['*','0','#']]
def buttonClicked(buttonVal):
print(buttonVal)
for r in range(4):
for c in range(3):
button = Button(root,
relief = RAISED,
padx = 10,
text = buttons[r][c],
command = partial(buttonClicked, buttons[r][c]))
button.grid(row = r, column = c)
root.mainloop()https://stackoverflow.com/questions/34113208
复制相似问题