请向我展示pyqt5中的主界面存在四个并排放置的按钮,每个按钮点击后分别对应切换到不同的子界面,每个子界面都有一个按钮用于返回的代码
时间: 2024-05-12 16:15:18 浏览: 46
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
好的,以下是一个简单的示例代码,实现了在主界面中放置四个按钮,并且点击每个按钮后可以切换到对应的子界面,每个子界面也有一个返回按钮:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QHBoxLayout, QLabel
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 设置主界面标题和大小
self.setWindowTitle("Main Window")
self.resize(400, 300)
# 创建四个按钮并设置文本
self.btn1 = QPushButton("Button 1")
self.btn2 = QPushButton("Button 2")
self.btn3 = QPushButton("Button 3")
self.btn4 = QPushButton("Button 4")
# 创建四个子界面并设置标题、文本和布局
self.subwindow1 = QWidget()
self.subwindow1.setWindowTitle("Sub Window 1")
label1 = QLabel("This is sub window 1.")
btn_back1 = QPushButton("Back")
layout1 = QVBoxLayout()
layout1.addWidget(label1)
layout1.addWidget(btn_back1)
self.subwindow1.setLayout(layout1)
self.subwindow2 = QWidget()
self.subwindow2.setWindowTitle("Sub Window 2")
label2 = QLabel("This is sub window 2.")
btn_back2 = QPushButton("Back")
layout2 = QVBoxLayout()
layout2.addWidget(label2)
layout2.addWidget(btn_back2)
self.subwindow2.setLayout(layout2)
self.subwindow3 = QWidget()
self.subwindow3.setWindowTitle("Sub Window 3")
label3 = QLabel("This is sub window 3.")
btn_back3 = QPushButton("Back")
layout3 = QVBoxLayout()
layout3.addWidget(label3)
layout3.addWidget(btn_back3)
self.subwindow3.setLayout(layout3)
self.subwindow4 = QWidget()
self.subwindow4.setWindowTitle("Sub Window 4")
label4 = QLabel("This is sub window 4.")
btn_back4 = QPushButton("Back")
layout4 = QVBoxLayout()
layout4.addWidget(label4)
layout4.addWidget(btn_back4)
self.subwindow4.setLayout(layout4)
# 连接四个按钮的点击事件
self.btn1.clicked.connect(self.show_subwindow1)
self.btn2.clicked.connect(self.show_subwindow2)
self.btn3.clicked.connect(self.show_subwindow3)
self.btn4.clicked.connect(self.show_subwindow4)
# 创建主界面布局并添加四个按钮
layout_main = QHBoxLayout()
layout_main.addWidget(self.btn1)
layout_main.addWidget(self.btn2)
layout_main.addWidget(self.btn3)
layout_main.addWidget(self.btn4)
self.setLayout(layout_main)
def show_subwindow1(self):
self.subwindow1.show()
def show_subwindow2(self):
self.subwindow2.show()
def show_subwindow3(self):
self.subwindow3.show()
def show_subwindow4(self):
self.subwindow4.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
这个示例中,我们首先创建了一个 `MainWindow` 类作为主界面,然后在其中创建了四个按钮和四个子界面。每个按钮都连接了一个对应的槽函数,当点击按钮时,就会显示对应的子界面。子界面中也都有一个返回按钮,当点击返回按钮时,子界面就会关闭。最后,我们将四个按钮添加到主界面布局中,并显示主界面。
阅读全文