我正在尝试使用 tkinter 构建一个小数字键盘,以便能够在纯触摸系统上输入密码。这是我到目前为止所拥有的:
从 tkinter 导入 tkinter 导入 ttk
def main():
root = tkinter.Tk()
numpad = NumPad(root)
root.mainloop()
btn_list = [
'7', '8', '9',
'4', '5', '6',
'1', '2', '3', '0']
class NumPad(ttk.Frame):
def __init__(self, root):
ttk.Frame.__init__(self, root)
self.grid()
self.numpad_create()
def numpad_create(self):
r = 1
c = 0
for b in btn_list:
cmd= lambda: print(b)
self.b= ttk.Button(self, text=b,width=5,command=cmd).grid(row=r,column=c)
print(b)
c += 1
if c > 4:
c = 0
r += 1
main()
如果我启动程序,它会将数字 b 打印到外壳上,所以这是可行的。按钮也按需要显示。但是如果我点击它们,我总是得到 0 作为 shell 的输出。我找不到我犯的错误,我认为这可能与垃圾收集有关,但我不确定。
有人可以帮我吗?真的很棒!
谢谢!