马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 campnouw 于 2017-3-4 23:33 编辑
大家好,有两个问题吧:
1.(问题1已经解决,看完代码就看问题2吧……)代码修改自67课的计算器,我把窗口内组件的创立写成了tk.Tk的子类,如下import tkinter as tk
class MyTk(tk.Tk):
#def __init__(self):
def construct(self):
self.v1 = tk.StringVar()
self.v2 = tk.StringVar()
self.v3 = tk.StringVar()
self.frame = tk.Frame(self)
self.frame.pack(padx=10,pady=10)
self.testCMD = self.register(self.test)
self.entry1 = tk.Entry(self.frame,width=10, textvariable=self.v1, validate="key", validatecommand=(self.testCMD,'%P')).grid(row=0,column=0)
tk.Label(self.frame, text="+").grid(row=0,column=1)
self.entry2 = tk.Entry(self.frame, width=10, textvariable=self.v2, validate="key", validatecommand=(self.testCMD,'%P')).grid(row=0,column=2)
tk.Label(self.frame, text="=").grid(row=0,column=3)
self.entry3 = tk.Entry(self.frame, textvariable=self.v3, state="readonly").grid(row=0,column=4)
tk.Button(self.frame, text="计算", width=10, command=self.calc).grid(row=1,column=2)
def calc(self):
result = int(self.v1.get())+int(self.v2.get())
self.v3.set(str(result))
def test(self, content):
return content.isdigit()
master = MyTk()
master.construct()
tk.mainloop()
2. 以上例子中,如果把construct()函数中的内容,放到__init__(self),则无法编译通过,报错 AttributeError: 'NoneType' object has no attribute '_root',这又是为啥呢?
谢谢!
|