擅长:python、mysql、java
<p>您正在覆盖最后一个内部循环中的<code>self.b</code>。试试这个:</p>
<pre><code>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(3):
for r in range(3):
text = numbers[c*3+r]
cmd = lambda text=text: print(text)
self.b= ttk.Button(self, text=text, command=cmd).grid(row = r, column = c, pady = 5)
main()
</code></pre>