抽屉(stacked.py):
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QStackedLayout, QLabel
class Window1(QWidget):
def __init__(self):
super().__init__()
QLabel("Stacked 1", self)
self.setStyleSheet("background-color:skyblue;")
class Window2(QWidget):
def __init__(self):
super().__init__()
QLabel("Stacked 2", self)
self.setStyleSheet("background-color:pink;")
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.create_stacked_layout()
self.init_ui()
def create_stacked_layout(self):
self.stacked_layout = QStackedLayout()
win1 = Window1()
win2 = Window2()
self.stacked_layout.addWidget(win1)
self.stacked_layout.addWidget(win2)
def init_ui(self):
self.setWindowTitle("Stacked window")
self.setFixedSize(300, 400)
box = QVBoxLayout()
win3 = QWidget()
win3.setLayout(self.stacked_layout)
win3.setStyleSheet("background-color:grey;")
btn1 = QPushButton("Stacked 1")
btn2 = QPushButton("Stacked 2")
box.addWidget(win3)
box.addWidget(btn1)
box.addWidget(btn2)
self.setLayout(box)
btn1.clicked.connect(self.btn1_clicked)
btn2.clicked.connect(self.btn2_clicked)
def btn1_clicked(self):
self.stacked_layout.setCurrentIndex(0)
def btn2_clicked(self):
self.stacked_layout.setCurrentIndex(1)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建 QApplication 对象(当前运行地址)
w = MyWindow()
# 创建窗口
# w.setWindowTitle("串口调试")
# # 设窗口标题
w.show()
# 展示窗口
sys.exit(app.exec_())
# 系统,退出,QApplication程序的(事件检测)循环等待状态
弹窗(test.py):
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QLabel, QPushButton, QHBoxLayout, QVBoxLayout
from PyQt5test import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
class Dialog(QDialog):
def __init__(self):
super(QDialog, self).__init__()
self.init_ui_d()
def init_ui_d(self):
self.resize(150, 150)
self.setWindowTitle("弹窗")
self.setStyleSheet("background-color:lightpink;")
lab3 = QLabel("提交成功!")
lab3.setStyleSheet("font-size:20px ;color:red;")
lab3.setParent(self)
h = QHBoxLayout()
b = QPushButton("确定", self)
# okBtn.setMinimumSize(40,20)
# okBtn.setMaximumSize(50,20)
h.addStretch(1)
h.addWidget(b)
h.addStretch(1)
# self.setLayout(h)
h2 = QVBoxLayout()
h2.addWidget(lab3)
h2.addLayout(h)
self.setLayout(h2)
if __name__ == '__main__':
# 创建 QApplication 对象(当前运行地址)
app = QApplication(sys.argv)
# 创建窗口
w = Dialog()
# # 设窗口标题
# w.setWindowTitle("串口调试")
# 展示窗口
w.show()
# 系统,退出,QApplication程序的(事件检测)循环等待状态
sys.exit(app.exec_())
结合(window.py):
import sys
from PyQt5.QtWidgets import QWidget, QMainWindow, QDialog, QApplication, QVBoxLayout, QHBoxLayout, QLabel, QPushButton
from PyQt5.QtCore import *
class Widget(QWidget):
def __init__(self):
super(Widget, self).__init__()
self.init_ui()
def init_ui(self):
lab = QLabel("There are words--Widget")
lab.setStyleSheet("font-size:40px; color:red;")
lab.setParent(self)
class MainWindow(QMainWindow):
def __init__(self):
super(QMainWindow, self).__init__() # MainWindow, self
self.init_ui_m()
def init_ui_m(self):
self.setStyleSheet("background-color:pink;")
self.setWindowTitle("window test")
self.resize(400, 200)
lab2 = QLabel("There are words--MainWindow")
lab2.setGeometry(QRect(0, 20, 400, 100))
lab2.setStyleSheet("font-size:20px; color:red;background-color:lightgrey;")
lab2.setParent(self)
h2 = QHBoxLayout()
b = QPushButton("提交", self)
b.setMinimumSize(50, 30)
b.setMaximumSize(70, 30)
h2.addStretch(1)
h2.addWidget(b)
h2.addStretch(1)
h2.setGeometry(QRect(0, 150, 400, 50))
h = QVBoxLayout()
h.addWidget(lab2)
h.addLayout(h2)
self.setLayout(h)
b.clicked.connect(self.show_message)
menu = self.menuBar()
a = menu.addMenu("开始")
a.addAction("保存")
a.addAction("新建")
a.addAction("打开")
a = menu.addMenu("视图")
a.addAction("缩略图")
a.addAction("大纲")
a.addAction("目录")
@staticmethod
def show_message():
import test
a = test.Dialog()
a.exec_()
class Dialog(QDialog):
def __init__(self, parent):
super(QDialog, self).__init__(parent)
self.init_ui_d()
def init_ui_d(self):
lab3 = QLabel("提交成功!")
lab3.setStyleSheet("font-size:20px ;color:red;")
lab3.setParent(self)
QPushButton("确定", self)
if __name__ == '__main__':
app = QApplication(sys.argv)
# w = Widget()
w = MainWindow()
# w.setStyleSheet("background-color:pink;")
# w.setWindowTitle("window test")
# w.resize(400, 300)
w.show()
sys.exit(app.exec_())
使用Qt designer建的生成的代码就不存了。