Что такое аргумент "роль" в QTableWidgetItem.data(self, int *role*)?
Я просматриваю документацию по адресу:
Я могу поставить линию IDList.append(item.data())
в мой код, и распечатайте это как правильное значение. Но странно, после этой строки, это дает мне эту ошибку:
Ошибка типа: QTableWidgetItem.data(int): недостаточно аргументов
Я не знаю, почему сообщение об ошибке появляется после строки печати, но я не думаю, что это должно быть важно. Что означает документация под " ролью int"? Можете ли вы привести пример, пожалуйста?
1 ответ
С элементом связано много видов данных, таких как текст, шрифт, фон, всплывающая подсказка и т. Д. role
это значение из перечисления ItemDataRole, которое позволяет вам указать, какой тип данных вы хотите.
Некоторые из этих элементов данных также имеют функцию доступа. Итак, эти две строки кода эквивалентны:
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)