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!')