Что такое аргумент "роль" в 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)
Другие вопросы по тегам