【发布时间】:2010-10-01 13:07:53
【问题描述】:
我正在使用 PyQt4 为现有应用程序开发插件 UI。该窗口是在主窗口中按下按钮时使用 uic.loadUi() 创建的。问题是,如果我再次按下按钮(当窗口显示时),窗口会重新创建,未保存的更改会丢失。我不想使窗口模态。我有哪些选择来解决这个问题?我想这与检查 QWidget 是否已经显示有关。
【问题讨论】:
标签: python user-interface qt4 pyqt4
我正在使用 PyQt4 为现有应用程序开发插件 UI。该窗口是在主窗口中按下按钮时使用 uic.loadUi() 创建的。问题是,如果我再次按下按钮(当窗口显示时),窗口会重新创建,未保存的更改会丢失。我不想使窗口模态。我有哪些选择来解决这个问题?我想这与检查 QWidget 是否已经显示有关。
【问题讨论】:
标签: python user-interface qt4 pyqt4
您应该将指向 QWidget(成员变量)的指针初始化为 0。
按下按钮时,检查指针是否为 0 - 如果是,则加载并显示小部件,并分配指针变量以指向新的小部件。如果按下按钮时指针不为空,则调用widget->raise()和widget->activateWindow()。
禁用的按钮可能会让用户感到沮丧,看起来什么也不做的按钮也会让用户感到沮丧,例如它们的效果是隐藏的。
【讨论】:
我原以为这将由您的应用程序逻辑处理,而不是其他任何事情。主窗口应在单击按钮后禁用该按钮,然后在关闭窗口时再次启用它。将辅助窗口的关闭信号连接到主窗口上的插槽,以在辅助窗口关闭时通知主窗口。
【讨论】: