【问题标题】:How to check if a QWidget is already showing?如何检查 QWidget 是否已经显示?
【发布时间】:2010-10-01 13:07:53
【问题描述】:

我正在使用 PyQt4 为现有应用程序开发插件 UI。该窗口是在主窗口中按下按钮时使用 uic.loadUi() 创建的。问题是,如果我再次按下按钮(当窗口显示时),窗口会重新创建,未保存的更改会丢失。我不想使窗口模态。我有哪些选择来解决这个问题?我想这与检查 QWidget 是否已经显示有关。

【问题讨论】:

    标签: python user-interface qt4 pyqt4


    【解决方案1】:

    您应该将指向 QWidget(成员变量)的指针初始化为 0。

    按下按钮时,检查指针是否为 0 - 如果是,则加载并显示小部件,并分配指针变量以指向新的小部件。如果按下按钮时指针不为空,则调用widget->raise()widget->activateWindow()

    禁用的按钮可能会让用户感到沮丧,看起来什么也不做的按钮也会让用户感到沮丧,例如它们的效果是隐藏的。

    【讨论】:

    • 太棒了!请注意,该函数在 PyQt 中称为 raise_(​​)。
    【解决方案2】:

    我原以为这将由您的应用程序逻辑处理,而不是其他任何事情。主窗口应在单击按钮后禁用该按钮,然后在关闭窗口时再次启用它。将辅助窗口的关闭信号连接到主窗口上的插槽,以在辅助窗口关闭时通知主窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      相关资源
      最近更新 更多