在Pyqt5中从第一个开始打开第二个表单

时间:2018-12-08 07:56:50

标签: python pyqt pyqt5 qt-designer

我是Qt和学习的新手。

我已经使用Qt Designer创建了两种形式。我想从第一个按钮单击事件中打开第二个表单。我已经做到了,这是行不通的。

import LoginForm
import SignUpForm
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

def OnSignup():
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = SignUpForm.Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    #sys.exit(app.exec_())


app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = LoginForm.Ui_LoginForm()
ui.setupUi(MainWindow)

ui.Signup.clicked.connect(OnSignup)

MainWindow.show()
sys.exit(app.exec_())

sys.exit(app.exec _())

没有此行,则打开第一个表单,但单击该按钮时未显示第二个表单。

在此行中,生成此错误。 QCoreApplication :: exec:事件循环已在运行

Plz帮助

1 个答案:

答案 0 :(得分:1)

import LoginForm
import SignUpForm
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

window2 = None
def OnSignup():
    global window2
    if window2 is None:
        window2 = QtWidgets.QMainWindow()
        ui = SignUpForm.Ui_MainWindow()
        ui.setupUi(window2)
    window2.show()


app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = LoginForm.Ui_LoginForm()
ui.setupUi(MainWindow)

ui.Signup.clicked.connect(OnSignup)

MainWindow.show()
app.exec_()