[英]Getting all data from ListWidgetItem PyQt4
通常,您不应该使用QListItemWidget,而应该使用适当的QAbstractItemModel子类。 这样,您可以使用所需的任何数据来备份listwidget,并访问该数据。
已经有一个实用程序类称为QStandardItemModel,它从QAbstractItemModel继承而来,可以帮助您快速入门。
您可以在QListWidgetItem
上存储多条任意数据(实际上,所有Item小部件都支持此功能)。 您需要为数据定义自定义角色。
Data1Role = QtCore.Qt.UserRole + 1
Data2Role = QtCore.Qt.UserRole + 2
item = QtGui.QListWidgetItem()
item.setData(Data1Role, 'Any data')
item.setData(Data2Role, 42)
print item.data(Data1Role)
# "Any data"
但是,该数据将不会显示在QListWidgetItem
上的任何位置。 默认情况下,唯一显示的数据是QtCore.Qt.DisplayRole
上设置的数据(这是text()
和setText()
使用的数据)。
您可能最好使用QTreeWidget
,它支持多列(用于多个数据)并创建QTreeWidgetItem
的自定义子类。 如果希望用户能够编辑表中的数据,则还需要创建一个QItemDelegate
来创建用于编辑数据的QLineEdits
和QComboBoxes
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.