请向我展示pyqt5中的主界面存在四个并排放置的按钮,每个按钮点击后分别对应切换到不同的界面,每个界面都有一个按钮用于返回的代码
时间: 2024-06-08 11:07:50 浏览: 51
以下是一个简单的示例代码,实现了四个并排放置的按钮,点击后分别切换到不同的界面,每个界面都有一个按钮用于返回到主界面:
```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(500, 300)
# 创建四个按钮,放置在水平布局中
button1 = QPushButton("Page 1", self)
button2 = QPushButton("Page 2", self)
button3 = QPushButton("Page 3", self)
button4 = QPushButton("Page 4", self)
hbox = QHBoxLayout()
hbox.addWidget(button1)
hbox.addWidget(button2)
hbox.addWidget(button3)
hbox.addWidget(button4)
# 设置主界面的布局
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
self.setLayout(vbox)
# 连接按钮的点击事件,点击后显示对应的页面
button1.clicked.connect(self.show_page1)
button2.clicked.connect(self.show_page2)
button3.clicked.connect(self.show_page3)
button4.clicked.connect(self.show_page4)
# 创建四个子页面,每个页面包含一个返回按钮
self.page1 = QWidget(self)
self.page1_label = QLabel("Page 1", self.page1)
self.page1_button = QPushButton("Back", self.page1)
self.page1_button.clicked.connect(self.show_main)
self.page2 = QWidget(self)
self.page2_label = QLabel("Page 2", self.page2)
self.page2_button = QPushButton("Back", self.page2)
self.page2_button.clicked.connect(self.show_main)
self.page3 = QWidget(self)
self.page3_label = QLabel("Page 3", self.page3)
self.page3_button = QPushButton("Back", self.page3)
self.page3_button.clicked.connect(self.show_main)
self.page4 = QWidget(self)
self.page4_label = QLabel("Page 4", self.page4)
self.page4_button = QPushButton("Back", self.page4)
self.page4_button.clicked.connect(self.show_main)
# 设置子页面的布局
vbox1 = QVBoxLayout()
vbox1.addWidget(self.page1_label)
vbox1.addWidget(self.page1_button)
self.page1.setLayout(vbox1)
vbox2 = QVBoxLayout()
vbox2.addWidget(self.page2_label)
vbox2.addWidget(self.page2_button)
self.page2.setLayout(vbox2)
vbox3 = QVBoxLayout()
vbox3.addWidget(self.page3_label)
vbox3.addWidget(self.page3_button)
self.page3.setLayout(vbox3)
vbox4 = QVBoxLayout()
vbox4.addWidget(self.page4_label)
vbox4.addWidget(self.page4_button)
self.page4.setLayout(vbox4)
def show_page1(self):
self.page1.show()
self.hide()
def show_page2(self):
self.page2.show()
self.hide()
def show_page3(self):
self.page3.show()
self.hide()
def show_page4(self):
self.page4.show()
self.hide()
def show_main(self):
self.show()
self.page1.hide()
self.page2.hide()
self.page3.hide()
self.page4.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个示例代码中,我们首先创建了一个主窗口 `MainWindow`,包含四个按钮,并使用水平布局将它们放置在一起。然后,我们创建了四个子页面(`self.page1`, `self.page2`, `self.page3`, `self.page4`),每个页面包含一个标签(`QLabel`)和一个返回按钮(`QPushButton`),并使用垂直布局将它们放置在一起。通过连接按钮的点击事件,我们可以在主窗口和子页面之间切换。当点击主窗口中的按钮时,我们会隐藏主窗口,并显示对应的子页面;当点击子页面中的返回按钮时,我们会隐藏子页面,并显示主窗口。
阅读全文