【发布时间】:2014-10-26 03:55:31
【问题描述】:
我正在为我的 python 脚本使用 Tkinter。在当前阶段,gui 看起来很丑,因为一个屏幕上有太多的选项/小部件。并非所有这些都是一直需要的,它可以分为四个部分。因此,我的想法是让他们在当前窗口中使用其选项/小部件扩展框架(每个部分一个框架)。
是否可以在 tkinter 中在单击按钮或复选框时扩展窗口/框架?
ps - 我尝试在新窗口中打开每个部分,但这会使 gui 变得不必要地复杂。
谢谢!
【问题讨论】:
-
根据您使用的几何管理器,为什么不在您希望它们出现时
grid小部件出现,而在您不希望它们出现时grid_remove它们?如果您设置了小部件所属的父Frame,Frame将相应地扩展和收缩。 -
谢谢@Brionius。这为我完成了工作!它很好地隐藏了框架; 然而当框架必须重新出现时,扩展并不是一个平滑的过程。在框架出现之前,它会在展开过程的中间冻结一秒。
-
上述评论的补充: 当我将“grid_remove”用于单个按钮小部件时,扩展很顺利,但当我将它用于框架时,它在视觉上很刺眼并冻结一秒钟包含 10-15 个小部件。有什么意见吗?
-
我不确定,但也许在你重新
grid所有小部件之后立即调用root_window.update_idletasks()?值得一试。 -
感谢您的评论@Brionius!不幸的是,这并不能解决问题。实际上,相同的脚本在 Windows 中可以完美运行,但在 mac 中却有那种刺耳和冻结。猜猜它可能与操作系统有关。
标签: python user-interface checkbox tkinter