2016-09-30 3 views
-2

Вот код open.py (главный файл), который открывает страницу входа в систему, которая имеет кнопку, которая при нажатии закрывает страницу входа и открывает страницу меню:PyQt4: Второе окно не показывает

from PyQt4 import QtGui 
import sys 
from loginpage import Ui_loginPage 
from menu import Ui_Menu 

class Form1(QtGui.QWidget, Ui_loginPage): 
    def __init__(self,parent=None): 
     QtGui.QWidget.__init__(self,parent) 
     self.setupUi(self) 
     self.login.clicked.connect(self.handleButton) 
     self.window2 = None 

    def handleButton(self): 
     self.close() 
     if self.window2 is None: 
      self.window2 = menu(self) 
     self.window2.show() 
     sys.exit(app.exec_()) 


class menu(QtGui.QWidget, Ui_Menu):  
    def __init__(self,parent=None): 
     QtGui.QWidget.__init__(self,parent) 
     self.setupUi(self) 

if __name__ == '__main__':  

    app = QtGui.QApplication(sys.argv) 
    window = Form1() 
    window.show() 
    sys.exit(app.exec_()) 

Код работает нормально, без каких-либо ошибок, но когда я нажимаю кнопку входа в систему, страница входа в систему закрывается, но страница меню не отображается. Это просто не показывает.

+1

'menu' не принимает никаких аргументов, почему вы передаете его' self'? –

+0

Я сделал некоторые изменения и не прошел сам по меню ..... еще не повезло –

ответ

0

Если окно menu является дочерним по отношению к окну Form1, оно будет скрыто при закрытии окна Form1 - так что не предоставляйте ему родителя. Вы также не должны называть sys.exit(app.exec_()) снова, так что ваш код должен выглядеть следующим образом:

class Form1(QtGui.QWidget, Ui_loginPage): 
    ... 

    def handleButton(self): 
     self.close() 
     if self.window2 is None: 
      self.window2 = menu() 
     self.window2.show() 

PS: смотрите this answer для более полного примера того, как реализовать диалоговое окно входа в PyQt.

+0

РАБОТАЕТ .... Спасибо, эхуморо .... очень ценю это –

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