vector容器数据显示在tablewidget里并添加勾选框
时间: 2024-03-09 21:47:13 浏览: 70
将数据显示在TABLE控件中
要在QTableWidget中添加勾选框,可以使用QCheckBox作为QTableWidgetItem的代理,并使用setCellWidget方法将其添加到单元格中。
以下是示例代码:
```python
# 假设有一个名为vec的vector容器,其中每个元素都是QString类型
vec = ["hello", "world", "example"]
# 获取tablewidget对象
tableWidget = QtWidgets.QTableWidget()
# 设置tablewidget的行数和列数
tableWidget.setRowCount(len(vec))
tableWidget.setColumnCount(2)
# 将vector中的元素逐行添加到tablewidget中,并添加勾选框
for i in range(len(vec)):
item = QtWidgets.QTableWidgetItem(vec[i])
checkBox = QtWidgets.QCheckBox()
tableWidget.setItem(i, 0, item)
tableWidget.setCellWidget(i, 1, checkBox)
# 显示tablewidget
tableWidget.show()
```
这段代码将会在tablewidget中显示如下内容,并且每行都有一个勾选框:
| 列1 | 列2 |
| --- | --- |
| hello | [ ] |
| world | [ ] |
| example | [ ] |
如果想要获取勾选框的状态,可以使用QTableWidget的cellWidget方法获取对应单元格的QWidget对象,并将其转换为QCheckBox对象,然后使用isChecked方法获取勾选状态。
例如,要获取第2行的勾选框状态,可以使用以下代码:
```python
checkBox = tableWidget.cellWidget(1, 1)
if isinstance(checkBox, QtWidgets.QCheckBox):
checked = checkBox.isChecked()
print(checked)
```
阅读全文