2016-09-30 149 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

'菜单'不采取任何论据,为什么你通过'自我'? –

+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

工作....感谢ekhumoro ....真的很感激它 –