pyqt5中qtablewidget点击控件返回表格位置
时间: 2023-05-30 11:04:05 浏览: 357
用qt利用tablewidget等控件
您可以使用QTableWidget的cellClicked信号来捕获单元格的单击事件,并使用QTableWidget的currentItem()方法获取当前选定的单元格。然后,您可以使用row()和column()方法获取所选单元格的行和列索引。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
class TableWidget(QTableWidget):
def __init__(self):
super().__init__()
self.cellClicked.connect(self.on_cell_clicked)
self.setColumnCount(3)
self.setRowCount(3)
for row in range(3):
for col in range(3):
item = QTableWidgetItem("row {} col {}".format(row, col))
self.setItem(row, col, item)
def on_cell_clicked(self, row, column):
item = self.currentItem()
if item is not None and item.flags() & Qt.ItemIsUserCheckable:
print("Checkbox clicked in row {} column {}".format(row, column))
else:
print("Cell clicked in row {} column {}".format(row, column))
if __name__ == '__main__':
app = QApplication([])
table = TableWidget()
table.show()
app.exec_()
```
在这个示例中,每个单元格都包含一个字符串,但您可以将其替换为复选框或其他控件。如果您想检查所选单元格中是否包含复选框,可以使用flags()方法来检查是否设置了Qt.ItemIsUserCheckable标志。如果是这样,就意味着单元格中包含复选框。
阅读全文