Python Tkinter grid_忘记了在嵌入式类中没有按照预期的方式运行。这个代码有什么问题?
我有以下示例代码:Python Tkinter grid_忘记了在嵌入式类中没有按照预期的方式运行。这个代码有什么问题?,python,tkinter,Python,Tkinter,我有以下示例代码: class A(): def foo(self): def onButtonPress(): progress.grid() progress.start() progress = ttk.Progressbar( root, orient="horizontal" mode="indeterminate")
class A():
def foo(self):
def onButtonPress():
progress.grid()
progress.start()
progress = ttk.Progressbar(
root,
orient="horizontal"
mode="indeterminate")
progress.grid(
row=3,
column=0,
columnspan=2,
sticky="nswe")
# Make it invisible at first
progress.grid_forget()
当我运行它时,它一开始是不可见的,但是一旦启动,网格就被忘记了,这意味着它只是在没有格式化的情况下被抛出。我用相同的代码替换onButtonPress中的grid()命令,它可以工作并填充列。我一直在听你说有什么问题吗
编辑:菜鸟犯了一个错误,使用了grid_forget而不是grid_remove。grid\u remove修复了所有问题。我不太熟悉tkinter,但这里有一个语法错误
progress = ttk.Progressbar( #forgot to open parenthesis
root,
orient="horizontal", #need another comma
mode="indeterminate")
那是你真正的密码吗?您似乎缺少
ttk.Progressbar
后面的括号。此外,这句话似乎毫无意义:“网格被遗忘了,意味着它只是在没有格式化的情况下被抛出”。我应该澄清这不是剪切粘贴,我的代码很长,这是一个如何构造的示例。一切运行正常,只是如果我想让它在嵌入式类中工作,我必须将整个grid命令与细节一起粘贴。网格忘记了布局,它只是将它粘贴到我的GUI底部,在那里它不会粘在一起。唯一重要的是,您发布的代码实际上给出了您所询问的错误或不良行为。如果该代码不是与问题直接相关的实际代码,则该代码是无用的。对于语法错误,很抱歉,这只是它的结构示例。类中的一个函数包含另一个函数,而grid_忘记了它没有做我期望它做的事情。我必须重新输入嵌入函数中的行、列和粘滞项,才能使其工作。