Tkinter 顶层类型错误
Tkinter Toplevel type error
我被难住了(又一次),希望能在这里找到帮助。
我正在处理一个 tkinter 应用程序,运行 遇到一个我似乎无法弄清楚的类型错误。
这是我用作测试的原始代码的精简版
class 应用程序():
def __init__(self,master):
master.configure(background = '#002e3d')
master.title = master.title('Wiki Me!')
master.geometry = master.geometry('660x550+200+200')
master.resizable(width = False,height = False)
master.focus_set()
self.button1 = tk.Button(master,text= 'test', bg= 'grey', command= self.search)
self.button1.pack()
def search(self):
new_window = new()
class 新():
def __init__(self):
self.window = tk.Toplevel()
self.window.title('find')
def main():
root = tk.Tk()
window = App(root)
root.mainloop()
所以运行这会导致类型错误
'Str object is not callable'
任何帮助将不胜感激!
如果它在 linux 和 运行 python 3.4 空闲时很重要。
您收到的错误是由于发生了类似的事情。
my_string = "Hello World!"
my_string() # <-- Causes error
当您使用 master.title(str)
更改 window 的标题时,它 returns 一个空字符串 ''
。有了这一行,大师的标题window就变成了'Wiki Me!'
master.title = master.title('Wiki Me!')
但是 master.title
的值现在是一个空字符串,而不是类似下面的内容
<bound method Tk.wm_title of <tkinter.Tk object at 0x0000000003077320>>
现在,当您创建新的 Toplevel window 时,它使用 Tk
实例的标题,在本例中默认为 master
。因为标题现在是字符串而不是自然绑定方法,所以在创建 Toplevel 实例时会导致问题。你只需要
master.title('Wiki Me!')
我被难住了(又一次),希望能在这里找到帮助。 我正在处理一个 tkinter 应用程序,运行 遇到一个我似乎无法弄清楚的类型错误。
这是我用作测试的原始代码的精简版
class 应用程序():
def __init__(self,master):
master.configure(background = '#002e3d')
master.title = master.title('Wiki Me!')
master.geometry = master.geometry('660x550+200+200')
master.resizable(width = False,height = False)
master.focus_set()
self.button1 = tk.Button(master,text= 'test', bg= 'grey', command= self.search)
self.button1.pack()
def search(self):
new_window = new()
class 新():
def __init__(self):
self.window = tk.Toplevel()
self.window.title('find')
def main():
root = tk.Tk()
window = App(root)
root.mainloop()
所以运行这会导致类型错误 'Str object is not callable'
任何帮助将不胜感激! 如果它在 linux 和 运行 python 3.4 空闲时很重要。
您收到的错误是由于发生了类似的事情。
my_string = "Hello World!"
my_string() # <-- Causes error
当您使用 master.title(str)
更改 window 的标题时,它 returns 一个空字符串 ''
。有了这一行,大师的标题window就变成了'Wiki Me!'
master.title = master.title('Wiki Me!')
但是 master.title
的值现在是一个空字符串,而不是类似下面的内容
<bound method Tk.wm_title of <tkinter.Tk object at 0x0000000003077320>>
现在,当您创建新的 Toplevel window 时,它使用 Tk
实例的标题,在本例中默认为 master
。因为标题现在是字符串而不是自然绑定方法,所以在创建 Toplevel 实例时会导致问题。你只需要
master.title('Wiki Me!')