【发布时间】:2021-04-12 13:47:54
【问题描述】:
我正在制作一个 pyqt 程序来注册和授权用户。我想要一个带有按钮的开始窗口,单击这些按钮将打开授权窗口或注册窗口。但是,例如,当我导入注册模块时,会打开注册窗口而不是主窗口。你能告诉我我哪里做错了吗?
主模块:
from PyQt5 import QtWidgets, QtCore
from start import Ui_Form #py file with start window ui properties
import registration #registration module
class StartWindow(QtWidgets.QMainWindow):
def __init__(self):
super(StartWindow, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
self.ui.RegButton.clicked.connect(reg_clicked())
self.openreg=registration.mywindow(self)
#self.ui.AuthButton.clicked.connect()
def reg_clicked(self):
self.openreg.show()
app = QtWidgets.QApplication([])
application = StartWindow()
application.show()
sys.exit(app.exec())
注册模块部分:
from PyQt5 import QtWidgets, QtCore
import record_proc
from reg import Ui_Reg
class mywindow(QtWidgets.QMainWindow):
number_of_samples=1
def __init__(self):
super(mywindow, self).__init__()
self.ui = Ui_Reg()
self.ui.setupUi(self)
self.ui.RecordButton.clicked.connect(self.Recording)
self.ui.AuthButton.clicked.connect(self.Register)
self.ui.CheckLogin.clicked.connect(self.CheckLogin)
app2 = QtWidgets.QApplication([])
application2 = mywindow()
application2.show()
sys.exit(app2.exec())
【问题讨论】:
-
从
registration.py中删除最后四行或将它们放在if __name__ == "__main__":块中。如果您导入一个模块,则会读取并执行所有相应的 .py 文件。在这种情况下,当您导入registration时,您的registration.py文件中的最后四行将创建一个QApplication实例,创建并显示一个注册窗口并启动事件循环。
标签: python python-3.x pyqt pyqt5