【问题标题】:How to expand window/frame when button or checkbox is clicked in tkinter?在 tkinter 中单击按钮或复选框时如何扩展窗口/框架?
【发布时间】:2014-10-26 03:55:31
【问题描述】:

我正在为我的 python 脚本使用 Tkinter。在当前阶段,gui 看起来很丑,因为一个屏幕上有太多的选项/小部件。并非所有这些都是一直需要的,它可以分为四个部分。因此,我的想法是让他们在当前窗口中使用其选项/小部件扩展框架(每个部分一个框架)。

是否可以在 tkinter在单击按钮或复选框时扩展窗口/框架?

ps - 我尝试在新窗口中打开每个部分,但这会使 gui 变得不必要地复杂。

谢谢!

【问题讨论】:

  • 根据您使用的几何管理器,为什么不在您希望它们出现时grid 小部件出现,而在您不希望它们出现时grid_remove 它们?如果您设置了小部件所属的父 FrameFrame 将相应地扩展和收缩。
  • 谢谢@Brionius。这为我完成了工作!它很好地隐藏了框架; 然而当框架必须重新出现时,扩展并不是一个平滑的过程。在框架出现之前,它会在展开过程的中间冻结一秒。
  • 上述评论的补充: 当我将“grid_remove”用于单个按钮小部件时,扩展很顺利,但当我将它用于框架时,它在视觉上很刺眼并冻结一秒钟包含 10-15 个小部件。有什么意见吗?
  • 我不确定,但也许在你重新grid 所有小部件之后立即调用root_window.update_idletasks()?值得一试。
  • 感谢您的评论@Brionius!不幸的是,这并不能解决问题。实际上,相同的脚本在 Windows 中可以完美运行,但在 mac 中却有那种刺耳和冻结。猜猜它可能与操作系统有关。

标签: python user-interface checkbox tkinter


【解决方案1】:

因此,您需要定义单击按钮时会发生什么-

def buttonClicked():
    root.geometry("350x300")

root 是窗口,然后在按钮上你需要写 -

btn = tkinter.Button(text = "Button", command=buttonClicked)
btn.pack

希望能回答您的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 2021-05-17
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多