qtablewidget 存储两个QTableWidgetItem,为两个类别展示 可切换
时间: 2023-06-13 16:08:39 浏览: 44
您可以使用QComboBox控件来实现类别切换,并使用QTableWidget控件来显示所选类别的QTableWidgetItem。以下是一些基本的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QComboBox, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建QComboBox控件
self.comboBox = QComboBox()
self.comboBox.addItems(['Category 1', 'Category 2'])
self.comboBox.currentIndexChanged.connect(self.changeCategory)
# 创建QTableWidget控件
self.tableWidget = QTableWidget()
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(2)
self.tableWidget.setHorizontalHeaderLabels(['Name', 'Value'])
# 向QTableWidget中添加QTableWidgetItem
self.items1 = [QTableWidgetItem('Item 1'), QTableWidgetItem('100')]
self.items2 = [QTableWidgetItem('Item 2'), QTableWidgetItem('200')]
self.tableWidget.setItem(0, 0, self.items1[0])
self.tableWidget.setItem(0, 1, self.items1[1])
self.tableWidget.setItem(1, 0, self.items2[0])
self.tableWidget.setItem(1, 1, self.items2[1])
# 创建垂直布局,并将QComboBox和QTableWidget添加到其中
layout = QVBoxLayout()
layout.addWidget(self.comboBox)
layout.addWidget(self.tableWidget)
self.setLayout(layout)
def changeCategory(self, index):
# 根据所选类别,更新QTableWidget中的QTableWidgetItem
if index == 0:
self.tableWidget.setItem(0, 0, self.items1[0])
self.tableWidget.setItem(0, 1, self.items1[1])
self.tableWidget.setItem(1, 0, self.items2[0])
self.tableWidget.setItem(1, 1, self.items2[1])
elif index == 1:
self.tableWidget.setItem(0, 0, QTableWidgetItem('Item 3'))
self.tableWidget.setItem(0, 1, QTableWidgetItem('300'))
self.tableWidget.setItem(1, 0, QTableWidgetItem('Item 4'))
self.tableWidget.setItem(1, 1, QTableWidgetItem('400'))
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在上述代码中,我们创建了一个QComboBox控件和一个QTableWidget控件,并将它们添加到一个垂直布局中。我们还创建了两个QTableWidgetItem,分别属于两个类别。在`changeCategory`函数中,我们根据所选类别更新QTableWidget中的QTableWidgetItem。当用户选择不同的类别时,我们通过连接到`currentIndexChanged`信号来调用该函数,并更新QTableWidget中的内容。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)