pyside stackedWidget
时间: 2023-12-04 15:48:26 浏览: 139
在PySide中,你可以使用`QStackedWidget`来实现堆叠窗口的效果。`QStackedWidget`提供了一种容器,可以在其中堆叠多个子窗口,并显示其中一个子窗口。
下面是一个示例代码,展示了如何使用`QStackedWidget`:
```python
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QStackedWidget
app = QApplication([])
# 创建主窗口
main_window = QWidget()
# 创建布局
layout = QVBoxLayout(main_window)
# 创建堆叠窗口
stacked_widget = QStackedWidget()
# 创建子窗口1
page1 = QWidget()
button1 = QPushButton("Page 1")
layout1 = QVBoxLayout(page1)
layout1.addWidget(button1)
# 创建子窗口2
page2 = QWidget()
button2 = QPushButton("Page 2")
layout2 = QVBoxLayout(page2)
layout2.addWidget(button2)
# 添加子窗口到堆叠窗口中
stacked_widget.addWidget(page1)
stacked_widget.addWidget(page2)
# 切换到第一个子窗口
stacked_widget.setCurrentIndex(0)
# 切换按钮点击事件
def switch_page():
if stacked_widget.currentIndex() == 0:
stacked_widget.setCurrentIndex(1)
else:
stacked_widget.setCurrentIndex(0)
# 添加切换按钮到主窗口布局中
switch_button = QPushButton("Switch")
switch_button.clicked.connect(switch_page)
layout.addWidget(switch_button)
# 添加堆叠窗口到主窗口布局中
layout.addWidget(stacked_widget)
main_window.show()
app.exec()
```
在上述示例中,我们首先创建了一个主窗口和一个垂直布局。然后,我们创建了一个`QStackedWidget`作为堆叠窗口,并创建了两个子窗口`page1`和`page2`。每个子窗口中包含一个按钮。我们将这两个子窗口添加到`QStackedWidget`中。
通过调用`setCurrentIndex()`方法,我们可以在不同的子窗口之间进行切换。在示例中,我们通过点击切换按钮来切换子窗口的显示。
希望这个示例能帮助到你!
阅读全文