现在有一个注册登录的程序:
主程序:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\Desktop\login.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtWidgets import QApplication
import register_progress
class login(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setupUi(self)
self.retranslateUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 295)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 791, 271))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.label_username = QtWidgets.QLabel(self.tab)
self.label_username.setGeometry(QtCore.QRect(10, 40, 51, 16))
self.label_username.setObjectName("label_username")
self.label_password = QtWidgets.QLabel(self.tab)
self.label_password.setGeometry(QtCore.QRect(10, 80, 61, 16))
self.label_password.setObjectName("label_password")
self.label_phone = QtWidgets.QLabel(self.tab)
self.label_phone.setGeometry(QtCore.QRect(10, 120, 51, 16))
self.label_phone.setObjectName("label_phone")
self.label_Email = QtWidgets.QLabel(self.tab)
self.label_Email.setGeometry(QtCore.QRect(10, 150, 31, 16))
self.label_Email.setObjectName("label_Email")
self.label_root_password = QtWidgets.QLabel(self.tab)
self.label_root_password.setGeometry(QtCore.QRect(10, 210, 61, 21))
self.label_root_password.setObjectName("label_root_password")
self.lineEdit_username = QtWidgets.QLineEdit(self.tab)
self.lineEdit_username.setGeometry(QtCore.QRect(150, 40, 113, 21))
self.lineEdit_username.setObjectName("lineEdit_username")
self.label_W_Q = QtWidgets.QLabel(self.tab)
self.label_W_Q.setGeometry(QtCore.QRect(10, 180, 81, 16))
self.label_W_Q.setObjectName("label_W_Q")
self.lineEdit_password = QtWidgets.QLineEdit(self.tab)
self.lineEdit_password.setGeometry(QtCore.QRect(150, 80, 113, 21))
self.lineEdit_password.setObjectName("lineEdit_password")
self.lineEdit_Email = QtWidgets.QLineEdit(self.tab)
self.lineEdit_Email.setGeometry(QtCore.QRect(150, 150, 113, 21))
self.lineEdit_Email.setObjectName("lineEdit_Email")
self.lineEdit_phone = QtWidgets.QLineEdit(self.tab)
self.lineEdit_phone.setGeometry(QtCore.QRect(150, 120, 113, 21))
self.lineEdit_phone.setObjectName("lineEdit_phone")
self.lineEdit_root_password = QtWidgets.QLineEdit(self.tab)
self.lineEdit_root_password.setGeometry(QtCore.QRect(150, 220, 113, 21))
self.lineEdit_root_password.setObjectName("lineEdit_root_password")
self.lineEdit_W_Q = QtWidgets.QLineEdit(self.tab)
self.lineEdit_W_Q.setGeometry(QtCore.QRect(150, 180, 113, 21))
self.lineEdit_W_Q.setObjectName("lineEdit_W_Q")
self.label_name = QtWidgets.QLabel(self.tab)
self.label_name.setGeometry(QtCore.QRect(300, 50, 31, 16))
self.label_name.setObjectName("label_name")
self.lineEdit_name = QtWidgets.QLineEdit(self.tab)
self.lineEdit_name.setGeometry(QtCore.QRect(350, 50, 113, 21))
self.lineEdit_name.setObjectName("lineEdit_name")
self.label_signature = QtWidgets.QLabel(self.tab)
self.label_signature.setGeometry(QtCore.QRect(300, 90, 72, 15))
self.label_signature.setObjectName("label_signature")
self.lineEdit_signature = QtWidgets.QLineEdit(self.tab)
self.lineEdit_signature.setGeometry(QtCore.QRect(300, 120, 341, 121))
self.lineEdit_signature.setObjectName("lineEdit_signature")
self.pushButton_register = QtWidgets.QPushButton(self.tab)
self.pushButton_register.setGeometry(QtCore.QRect(670, 100, 93, 28))
self.pushButton_register.setObjectName("pushButton_register")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.label_user_name = QtWidgets.QLabel(self.tab_2)
self.label_user_name.setGeometry(QtCore.QRect(340, 20, 51, 16))
self.label_user_name.setObjectName("label_user_name")
self.lineEdit_9 = QtWidgets.QLineEdit(self.tab_2)
self.lineEdit_9.setGeometry(QtCore.QRect(310, 60, 113, 21))
self.lineEdit_9.setObjectName("lineEdit_9")
self.label_password_2 = QtWidgets.QLabel(self.tab_2)
self.label_password_2.setGeometry(QtCore.QRect(350, 100, 31, 16))
self.label_password_2.setObjectName("label_password_2")
self.lineEdit_10 = QtWidgets.QLineEdit(self.tab_2)
self.lineEdit_10.setGeometry(QtCore.QRect(310, 130, 113, 21))
self.lineEdit_10.setObjectName("lineEdit_10")
self.pushButton_login = QtWidgets.QPushButton(self.tab_2)
self.pushButton_login.setGeometry(QtCore.QRect(320, 190, 93, 28))
self.pushButton_login.setObjectName("pushButton_login")
self.tabWidget.addTab(self.tab_2, "")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_username.setText(_translate("MainWindow", "用户名"))
self.label_password.setText(_translate("MainWindow", "用户密码"))
self.label_phone.setText(_translate("MainWindow", "手机号"))
self.label_Email.setText(_translate("MainWindow", "邮箱"))
self.label_root_password.setText(_translate("MainWindow", "管理密码"))
self.label_W_Q.setText(_translate("MainWindow", "weixin/QQ"))
self.label_name.setText(_translate("MainWindow", "昵称"))
self.label_signature.setText(_translate("MainWindow", "个性签名"))
self.pushButton_register.setText(_translate("MainWindow", "注册"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "注册"))
self.label_user_name.setText(_translate("MainWindow", "用户名"))
self.label_password_2.setText(_translate("MainWindow", "密码"))
self.pushButton_login.setText(_translate("MainWindow", "登录"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "登录"))
class register_progress(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setupUi(self)
self.retranslateUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(748, 104)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.progressBar = QtWidgets.QProgressBar(self.centralwidget)
self.progressBar.setGeometry(QtCore.QRect(10, 25, 721, 23))
self.progressBar.setProperty("value", 24)
self.progressBar.setObjectName("progressBar")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 70, 711, 20))
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "正在进行的操作"))
def register():
global ex
import register_progress
username = ex.lineEdit_username.text()
password = ex.lineEdit_password.text()
Email = ex.lineEdit_Email.text()
phone = ex.lineEdit_phone.text()
root_password = ex.lineEdit_root_password.text()
W_Q = ex.lineEdit_W_Q.text()
R=register_progress.Run()
R.run(10,'ss')
app = QApplication(sys.argv)
ex = login()
ex.pushButton_register.clicked.connect(register)
ex.show()
sys.exit(app.exec_())
进度条模块
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtWidgets import QApplication
class register_progress(QtWidgets.QMainWindow):
def __init__(self,operation):
QtWidgets.QMainWindow.__init__(self)
self.setupUi(self,operation)
self.retranslateUi(self,operation)
def setupUi(self, MainWindow,operation):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(748, 104)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.progressBar = QtWidgets.QProgressBar(self.centralwidget)
self.progressBar.setGeometry(QtCore.QRect(10, 25, 721, 23))
self.progressBar.setProperty("value", 24)
self.progressBar.setObjectName("progressBar")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 70, 711, 20))
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow,operation)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow,operation):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", operation))
class Run():
def __init__(self):
pass
def run(self,num,operation):
app = QApplication(sys.argv)
ex = register_progress(operation)
ex.progressBar.setRange(0, 100)
ex.progressBar.setValue(num)
ex.show()
sys.exit(app.exec_())
想达到的效果是主程序执行
import register_progress
R=register_progress.Run()
R.run(10,'ss')
结果为
可是现在的结果为
QCoreApplication::exec: The event loop is already running
你在主程序169-173行已经定义了一个QApplication对象并运行app.exec_()进入了事件循环。
当你点击login中register按钮是,register_progress.Run.run函数中又定义了一个新的app并运行app.exec_()。其实这里app是多余的,因为app和事件循环已经在之前的主程序里已经有了,此处应删除。