我正在使用PyQt4为现有应用程序开发插件UI。按下主窗口中的按钮时,使用uic.loadUi()创建窗口。问题是,如果在窗口显示时再次按下按钮,则会重新创建窗口并且未保存的更改将丢失。我不想使窗口模态。我有哪些选项来解决这个问题?我猜这可能与检查QWidget是否已经显示有关。
我正在使用PyQt4为现有应用程序开发插件UI。按下主窗口中的按钮时,使用uic.loadUi()创建窗口。问题是,如果在窗口显示时再次按下按钮,则会重新创建窗口并且未保存的更改将丢失。我不想使窗口模态。我有哪些选项来解决这个问题?我猜这可能与检查QWidget是否已经显示有关。
你需要将QWidget(成员变量)的指针初始化为0。
当按钮按下时,检查指针是否为0——如果是,则加载并显示小部件,并将指针变量分配为指向新小部件。如果在按钮按下时指针不为null,则调用widget->raise()
和widget->activateWindow()
。
禁用按钮可能会令用户感到沮丧,无法了解按钮的效果也会让他们感到困惑。