pyqt QTableWidgetItem setdata
时间: 2025-04-26 16:54:50 浏览: 25
### PyQt中使用QTableWidgetItem的setData方法
`QTableWidgetItem` 的 `setData()` 方法用于设置表格项的数据。此数据可以是显示文本、图标或其他自定义角色的信息。该函数接受两个参数:一个是表示数据类型的枚举值,另一个是要存储的实际数据。
对于常见的用途,通常会涉及到以下几种标准的角色:
- `Qt.ItemDataRole.DisplayRole`: 设置单元格内要显示的内容。
- `Qt.ItemDataRole.EditRole`: 当编辑单元格时使用的数值。
- `Qt.ItemDataRole.CheckStateRole`: 对于复选框的状态 (未勾选/已勾选)。
下面是一个简单的例子来展示如何利用 `setData()` 修改表单项中的内容[^1]:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
app = QApplication([])
table_widget = QTableWidget(2, 2)
item = QTableWidgetItem()
# Set display text for the item.
item.setData(Qt.ItemDataRole.DisplayRole, "Example Text")
# If you want to store additional information that is not displayed,
# such as an ID number associated with this row:
item.setData(Qt.UserRole, {"id": 42})
table_widget.setItem(0, 0, item)
table_widget.show()
app.exec_()
```
上述代码创建了一个具有两行两列的简单表格,并向第一个单元格添加了一条带有特定数据显示的新项目。还展示了怎样通过 `UserRole` 来保存一些不直接呈现给用户的额外信息。
#### 注意事项
当调用 `setData()` 更新现有项目的属性时,如果指定了不同的角色,则不会影响其他已经设定好的角色对应的值;也就是说,每次调用只会更新指定的那个角色所关联的数据。
阅读全文
相关推荐


















