树型部件QTreeWidget中的QTreeWidgetItem项中可以有多列数据,每列数据可以根据列位置进行访问。项中列数据的访问方式有两种:
- 通过data和setData方法
可以通过项的data(int column, int role) 方法获取项中指定列指定角色的数据,也可以通过setData(int column, int role, QVariant value)方法设置指定列指定角色的数据为value。 - 通过text和setText方法
可以通过项的text(int column) 方法获取项中指定列的数据,也可以通过setText(int column, str value)方法设置指定的数据为value。
注意:
- column参数是从0开始,如果setData、setText调用是指定了大于等于当前项列数的数值,则项的列数自动扩充到该数值+1
- role虽然是整数,但实际上是枚举类型 Qt.ItemDataRole,关于及取值及含义请参考《PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及含义》
- QVariant 表示任何PyQt的数据类型,所以value的类型没有约束
- 两种方法的差别主要是第一种方法支持通过数据角色访问指定数据,而text只能设定显示和存储的数据