弹窗说明
pyqt5 在qt designer后以弹窗的方式连接多个UI图形界面 当我们通过pyqt开发时,eric6为我们提供了一个方便的工具:图形化的绘制UI工具--qt designer。 我们可以通过它开发多个UI,然后利用信号-槽工具,将功能代码附着在上面。也可以将多个界面连接起来。 接下来,我要提供将多个UI链接起来的思路。 一:讲解:qt designer 自动生成的代码是怎样运行的: (一)组成 qt desinger自动生成的代码为一个对象和对象启动命令,对象中包含两个函数,setupUi()和retranslateUi()。 形如这样: from ... import .... class someclassname(object): def setupUi(): ... def retranslateUi(): ... if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_()) (二)运行方式: (1)两个函数setupUI和retranslateUi负责绘制Ui,其中setupUI会调用retranslateUi。 (2)if __name__ = "__main__" 及以后的语句是python的主程序运行 app = QtWidgets.QApplication(sys.argv) ...... sys.exit(app.exec_()) 上面两句为pyqt主程序运行通用语句 (3) Dialog = QtWidgets.QDialog() # 获取窗口类型实例 ui = someclassname() # 取得ui的class实例 ui.setupUi(Dialog) # 将ui实例绘制到窗口实例上 (4) Dialog.show() # 展示窗口 二:如何组合窗口 (一)首先,建立一个主程序的python文件,然后各种import (1)基本引用 import sys from PyQt5 import QtCore, QtGui, QtWidgets (2)文件引用:引用各个Ui的py文件的class (二)实例化启动qt应用 app = QtWidgets.QApplication(sys.argv) (三)实例化各种窗口,方式如1.2.3 中的三个语句,例如: !!!!注意,修改对应相关ui的py文件的变量名函数名避免冲突!!!!!!! (1)主窗口 ChenSpider = QtWidgets.QMainWindow() ui = Ui_ChenSpider() ui.setupUi(ChenSpider) (2)弹出窗口1 Dialog = QtWidgets.QDialog() ui2 = Ui_Dialog() ui2.setupUi2(Dialog) (3)弹出窗口2 Dialog3 = QtWidgets.QDialog() ui3 = Ui_Dialog3() ui3.setupUi3(Dialog3) (四) 将弹出窗口绑定在主窗口某个按钮上 例子中,将主窗口chenSpider的loginmysqlbttn按钮绑定在窗口1上,aboutbttn绑定在窗口2上,点击弹出 bttn = ui.loginmysqlbttn bttn.clicked.connect(Dialog.show) bttn2 = ui.aboutbttn bttn2.clicked.connect(Dialog3.show) (五) 启动 if __name__ == "__main__": ChenSpider.show() sys.exit(app.exec_())