首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter Toplevel型误差

Tkinter Toplevel型误差
EN

Stack Overflow用户
提问于 2016-02-24 00:39:36
回答 1查看 1.1K关注 0票数 0

我又一次陷入困境,希望能在这里找到帮助。我正在处理一个tkinter应用程序,遇到了一个类型错误,我似乎搞不清楚。

这是我用作测试的原始代码的浓缩版本。

类应用程序():

代码语言:javascript
复制
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()

新类别():

代码语言:javascript
复制
def __init__(self):
    self.window = tk.Toplevel()
    self.window.title('find')

def main():

代码语言:javascript
复制
root = tk.Tk()
window = App(root)
root.mainloop()

因此,运行此操作会导致类型错误“Str对象不可调用”。

任何帮助都将不胜感激!如果重要的话,在linux上执行im,并使用空闲运行python3.4。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 04:01:48

你所收到的错误是由于这样的事情发生的。

代码语言:javascript
复制
my_string = "Hello World!"
my_string() # <-- Causes error

当您使用master.title(str)更改窗口的标题时,它将返回一个空字符串''。使用此行,主窗口的标题将更改为'Wiki Me!'

代码语言:javascript
复制
master.title = master.title('Wiki Me!')

但是master.title的值现在是一个空字符串,而不是如下所示

代码语言:javascript
复制
<bound method Tk.wm_title of <tkinter.Tk object at 0x0000000003077320>>

现在,当您创建一个新的Toplevel窗口时,它使用了Tk实例的标题,在本例中,master是默认的。因为标题现在是一个字符串,而不是自然的绑定方法,所以在创建Toplevel实例时会产生问题。你所需要的就是

代码语言:javascript
复制
master.title('Wiki Me!')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35591144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档