PyQt - 隐藏MainWindow并在没有任务栏图标消失的情况下显示QDialog

时间:2016-08-03 09:00:24

标签: python pyqt pyside

我一直在使用此示例中的代码PyQt: How to hide QMainWindow

class Dialog_02(QtGui.QMainWindow):
    def __init__(self, parent):
        super(Dialog_02, self).__init__(parent)
        # ensure this window gets garbage-collected when closed
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
    ...    

    def closeAndReturn(self):
        self.close()
        self.parent().show()

class Dialog_01(QtGui.QMainWindow):
    ...

    def callAnotherQMainWindow(self):
        self.hide()
        self.dialog_02 = Dialog_02(self)
        self.dialog_02.show()

它可以工作,但是当打开第二个窗口时,窗口的任务栏图标不会显示。我也尝试过使用QtGui.QDialog作为Dialog_02,但这给了我相同的结果。

我该如何解决这个问题?

编辑:我在Windows 10上

1 个答案:

答案 0 :(得分:1)

只是猜测(因为我不知道你在哪个平台上,我自己也没有使用任务栏,所以我不能真正测试它),但试着摆脱父母:

class Dialog_02(QtGui.QMainWindow):
    def __init__(self, other_window):
        super(Dialog_02, self).__init__()
        # ensure this window gets garbage-collected when closed
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self._other_window = other_window
    ...    

    def closeAndReturn(self):
        self.close()
        self._other_window.show()