pyqt listWidget页面切换
时间: 2023-06-27 12:03:39 浏览: 170
在PyQt中,可以使用QStackedWidget来实现页面的切换。QStackedWidget是一个容器窗口,可以在其中添加多个子窗口,并且只有当前子窗口会显示在界面上。
我们可以将每个列表项对应的页面作为一个子窗口添加到QStackedWidget中,然后在列表项被选中时,切换到对应的子窗口。
下面是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListWidget, QStackedWidget
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建列表和页面容器
self.list_widget = QListWidget()
self.stack_widget = QStackedWidget()
# 添加子页面到容器中
self.page1 = QWidget()
self.page2 = QWidget()
self.stack_widget.addWidget(self.page1)
self.stack_widget.addWidget(self.page2)
# 将列表项与页面索引对应起来
self.list_widget.addItem("Page 1")
self.list_widget.addItem("Page 2")
self.list_widget.currentRowChanged.connect(self.changePage)
# 布局
layout = QVBoxLayout()
layout.addWidget(self.list_widget)
layout.addWidget(self.stack_widget)
self.setLayout(layout)
def changePage(self, index):
self.stack_widget.setCurrentIndex(index)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例中,我们创建了一个QListWidget和一个QStackedWidget,然后将两个子页面添加到QStackedWidget中。在QListWidget的currentRowChanged信号被触发时,我们调用changePage方法来切换到对应的子页面。
注意:这个示例只是一个简单的实现,如果需要更复杂的页面切换效果,可以使用QStackedLayout或者QTabWidget等组件来实现。
阅读全文