2016-08-03 3 views
0

Я использую код из этого примера PyQt: How to hide QMainWindow:PyQt - Скрыть MainWindow и показать QDialog без значка на панели задач исчезающего

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, но это дает мне тот же результат.

Как я могу решить это?

Edit: Я на Windows 10

ответ

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() 
+0

Я попробовал ваш метод и он работает, однако, при вызове функции closeAndReturn, чтобы вернуться в главное окно она не дает мне эту ошибку: self._other_window() .show() -> TypeError: объект «Window» не может быть вызван – ZeZe

+0

Ничего. Я набрал self._other_window(). Show() вместо self._other_window.show() – ZeZe

Смежные вопросы