如何检查QWidget是否已经显示?

时间:2010-10-01 13:07:53

标签: python user-interface qt4 pyqt4

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

2 个答案:

答案 0 :(得分:2)

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

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

禁用按钮对用户来说可能是令人沮丧的,因为按钮似乎什么也不做,因为例如他们的影响是隐藏的。

答案 1 :(得分:0)

我原以为这会由你的应用程序逻辑处理得更多。单击窗口后,主窗口应禁用该按钮,然后在关闭窗口时再次重新启用该按钮。将辅助窗口上的关闭信号连接到主窗口上的插槽,以便在关闭辅助窗口时通知主窗口。