什么是"角色" QTableWidgetItem.data中的参数(self,int * role *)?

时间:2016-10-13 10:40:17

标签: python pyqt qtablewidgetitem

我正在查看文档:

我可以将行IDList.append(item.data())放入我的代码中,然后将其打印为正确的值。但奇怪的是,在那一行之后,它给了我这个错误:

  

TypeError:QTableWidgetItem.data(int):没有足够的参数

我不知道为什么错误信息出现在打印行之后,但我认为这不应该是重要的。文档是什么意思" int role "?你能举个例子吗?

1 个答案:

答案 0 :(得分:2)

项目有多种与之关联的数据,例如文本,字体,背景,工具提示等。role是来自ItemDataRole enum的值,可让您指定哪种类型的你想要的数据。

这些数据项中的一些还具有访问器功能。所以这两行代码是等价的:

font = item.font()
font = item.data(QtCore.Qt.FontRole)

数据角色是可扩展的。您可以使用从Qt.UserRole开始的任何值将自定义角色与您自己的数据相关联:

MyRole = QtCore.Qt.UserRole + 2
item.setData(MyRole, [1, 2, 3])
...
data = item.data(MyRole)