多窗口显示是ui制作重要的环节
1.0主窗口显示(只有显示,没有槽,没有ui)
import binascii
import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QMessageBox, QFileDialog, QDialog,QAction
from PyQt5.QtCore import QTimer
import time
import serial
import serial.tools.list_ports
import threading
from trunk import Ui_MainWindow
from tr2_0 import Ui_Dialog
from crc import Ui_MainWindow_crc
from bytes_m import Ui_bytes_m
class con(QDialog, Ui_Dialog):
def __init__(self):
super(con, self).__init__()
self.setupUi(self) # 添加控件
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
tr = trunk()
tr.show()
sys.exit(app.exec_())
2.0子窗口显示
子窗口是必备的,毕竟主窗口大小有限,不能容纳太多内容
class con(QMainWindow,Ui_zichuangkou):
def __init__(self):
super(con, self).__init__()
self.setupUi(self)
def open(self):
self.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
tr = trunk()
co=con()
t.pushButton_3.clicked.connect(c.open)
tr.show()
sys.exit(app.exec_())
案例分析:简单的窗口小循环
import binascii
import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QMessageBox, QFileDialog, QDialog,QAction
from PyQt5.QtCore import QTimer
import time
import serial
import serial.tools.list_ports
import threading
from chuangkou_open import Ui_Dialog
from chuangkou_open2 import Ui_Dialog2
from chuangkou_open3 import Ui_Dialog3
from chuangkou_open4 import Ui_Dialog4
from chuangkou_open5 import Ui_Dialog5
from chuangkou_open6 import Ui_Dialog6
from chuangkou_open7 import Ui_Dialog7
class tr1(QDialog,Ui_Dialog):
def __init__(self):
super(tr1, self).__init__()
self.setupUi(self)
def open(self):
self.show()
class tr2(QDialog,Ui_Dialog2):
def __init__(self):
super(tr2, self).__init__()
self.setupUi(self)
def open(self):
self.show()
class tr3(QDialog,Ui_Dialog3):
def __init__(self):
super(tr3, self).__init__()
self.setupUi(self)
def open(self):
self.show()
class tr4(QDialog,Ui_Dialog4):
def __init__(self):
super(tr4, self).__init__()
self.setupUi(self)
def open(self):
self.show()
class tr5(QDialog,Ui_Dialog5):
def __init__(self):
super(tr5, self).__init__()
self.setupUi(self)
def open(self):
self.show()
class tr6(QDialog,Ui_Dialog6):
def __init__(self):
super(tr6, self).__init__()
self.setupUi(self)
def open(self):
self.show()
class tr7(QDialog,Ui_Dialog7):
def __init__(self):
super(tr7, self).__init__()
self.setupUi(self)
def open(self):
self.show()
def f(self):
QMessageBox.information(self,"zyj‘s blog","ok!")
if __name__=="__main__":
app=QtWidgets.QApplication(sys.argv)
t1=tr1()
t2 = tr2()
t3 = tr3()
t4 = tr4()
t5 = tr5()
t6 = tr6()
t7 = tr7()
t1.show()
t1.pushButton.clicked.connect(t2.open)
t2.pushButton.clicked.connect(t3.open)
t3.pushButton.clicked.connect(t4.open)
t4.pushButton.clicked.connect(t5.open)
t5.pushButton.clicked.connect(t6.open)
t6.pushButton.clicked.connect(t7.open)
t7.pushButton.clicked.connect(t7.f)
sys.exit(app.exec_())
给个ui的例子,下面是chuangkou_open7.py的文档,只要复制,然后把文件名字和文件内的主函数class Ui_Dialog7(object):的数字改了就可以了。
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog7(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 300)
self.gridLayout = QtWidgets.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout")
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.pushButton.setText(_translate("Dialog", "打开一个界面"))