QListWidget控件 显示两个表格互相切换
时间: 2024-01-17 17:03:04 浏览: 83
两个QWidget互相交换显示
5星 · 资源好评率100%
您可以使用QStackedWidget和QComboBox来实现这个功能。QStackedWidget是一个堆栈窗口部件,可以在其中添加多个子窗口部件,并且只有一个子部件可见。QComboBox是一个下拉框部件,可以让用户选择要显示的子窗口。
以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QListWidget, QStackedWidget, QComboBox
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建列表部件
self.list_widget = QListWidget()
self.list_widget.addItems(["Table 1", "Table 2"])
# 创建堆栈部件
self.stacked_widget = QStackedWidget()
self.stacked_widget.addWidget(QWidget()) # 添加表格1
self.stacked_widget.addWidget(QWidget()) # 添加表格2
# 创建下拉框部件
self.combo_box = QComboBox()
self.combo_box.addItems(["Table 1", "Table 2"])
# 连接信号和槽
self.list_widget.currentRowChanged.connect(self.stacked_widget.setCurrentIndex)
self.combo_box.currentIndexChanged.connect(self.stacked_widget.setCurrentIndex)
# 创建布局
list_layout = QVBoxLayout()
list_layout.addWidget(self.list_widget)
combo_layout = QHBoxLayout()
combo_layout.addWidget(self.combo_box)
main_layout = QVBoxLayout()
main_layout.addLayout(list_layout)
main_layout.addLayout(combo_layout)
main_layout.addWidget(self.stacked_widget)
self.setLayout(main_layout)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例中,我们创建了一个QListWidget和一个QComboBox来显示要显示的表格。我们还创建了一个QStackedWidget来存储两个表格。当用户选择列表或下拉框中的项时,我们将QStackedWidget的当前索引设置为选择的项的索引。这将显示选定的表格。
请注意,这个示例中的表格部件是空的QWidget。您需要将这些部件替换为您自己的表格部件。
阅读全文