qtablewidget里添加勾选框,选中获取单元格数据
时间: 2023-10-22 18:06:30 浏览: 163
QT-qtablewidget表头添加复选框QHeaderView
要在QTableWidget中添加勾选框可以使用QCheckBox控件,并将其放置在单元格中。可以使用setItem方法将QCheckBox添加到QTableWidget中的单元格中。例如,可以使用以下代码将QCheckBox添加到第一行第一列的单元格中:
```
checkbox = QCheckBox()
self.tableWidget.setItem(0, 0, QTableWidgetItem(""))
self.tableWidget.setCellWidget(0, 0, checkbox)
```
要获取选中的单元格数据,可以连接QCheckBox的stateChanged信号到一个槽函数中。在槽函数中,可以使用sender()方法获取发出信号的QCheckBox,然后使用row()和column()方法获取其所在的行和列。最后,可以使用item()方法获取该单元格中的数据。例如,可以使用以下代码获取第一行第一列单元格中的数据:
```
def on_state_changed(self):
checkbox = self.sender()
row = self.tableWidget.indexAt(checkbox.pos()).row()
column = self.tableWidget.indexAt(checkbox.pos()).column()
if checkbox.isChecked():
data = self.tableWidget.item(row, column).data(Qt.DisplayRole)
print(data)
```
在上述代码中,我们首先获取发出信号的QCheckBox,并使用其pos()方法获取其在QTableWidget中的位置。然后使用indexAt()方法获取该位置对应的行和列。最后,使用item()方法获取该单元格中的数据,并使用data()方法获取其显示的数据。如果要获取其他单元格的数据,只需将row和column的值替换为所需单元格的行和列即可。
阅读全文