【发布时间】:2013-07-14 18:22:20
【问题描述】:
我正在尝试从活动窗口中删除 Tkinter 进度条小部件(在初始化使用 Tkinter 的 GUI 窗口之后)。我正在为我的窗口使用 Tkinter Frame。我已经将进度条初始化为pb,如下。
pb = ttk.Progressbar(root,orient ="horizontal",length = 540, mode ="determinate")
然后我尝试了两种不同的方法来摆脱进度条。当我在 GUI 初始化后尝试使用它时,下面的行会导致窗口冻结并停止响应。
pb.pack_forget()
下面的行只导致进度条的中间部分消失,但您仍然可以看到它的两侧。
pb.destroy()
有什么方法可以让这个小部件在 Frame 初始化后消失?
【问题讨论】:
-
我很难相信调用
pack_forget()会导致窗口冻结。你是说如果你有一个工作程序,并且只输入一行,程序就会冻结?您是否偶然在同一框架中同时使用了 pack 和 grid? -
你是对的 - 问题是我也在使用网格配置(甚至没有意识到)。我已经删除了这些,现在
pack_forget()不会导致应用程序冻结 - 但是我遇到与使用destroy()相同的错误 - 进度条的一部分消失了。消失的部分似乎与下面包含文本的标签的宽度完全相同...... -
事件循环是否正在运行? “进度条的一部分消失了”听起来好像事件循环没有运行,所以屏幕重绘请求没有被兑现。
-
root.mainloop()正在运行,如果这是事件循环的意思 -
是的,这就是我所指的。
标签: python user-interface widget window tkinter