PyQt4中:第二个窗口不显示
问题描述:
这里是打开,有一个按钮,点击它时,关闭登录页面,打开菜单页面的登录页面的代码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_())
代码运行良好,没有任何错误,但是当我单击登录按钮时,登录页面关闭,但菜单页面不显示。它根本不显示。
答
如果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 ....真的很感激它 –
'菜单'不采取任何论据,为什么你通过'自我'? –
我做了一些改变,并没有通过自己的菜单.....仍然没有运气 –