import tkinter
from tkinter import ttk
def main():
root = tkinter.Tk()
numpad = NumPad(root)
root.mainloop()
numbers = [
'7', '8', '9',
'4', '5', '6',
'1', '2', '3']
class NumPad(ttk.Frame):
def __init__(self, root):
ttk.Frame.__init__(self, root)
self.grid()
self.num()
def num(self):
for c in range(1,4):
for r in range(3):
for b in numbers:
cmd = lambda b=b: print(b)
self.b= ttk.Button(self, text=b, command=cmd).grid(row = r, column = c, pady = 5)
#print(b)
main()
我有一个问题,这个代码,因为当我试图运行它所有的按钮只有3对他们,唯一的输出是3。我试着看我做错了什么,但还是找不到错误。它只选取“Numbers”函数中的最后一个数字。你知道吗
感谢您的帮助。你知道吗
您正在覆盖最后一个内部循环中的
self.b
。试试这个:对于网格上的每个点,您将创建9个按钮并将其中一个放在另一个上。只有最后一个按钮(与3对应的按钮)最终出现,而且每次都会出现。相反,您需要根据
c
和r
计算索引,并且只创建1个按钮:使用
zip
将每个行-列坐标与numbers
中的一个项配对:相关问题 更多 >
编程相关推荐