Установка и получение «данных» из элементов виджета PyQt?

Это не столько вопрос, сколько просьба объяснить. Я следую Марку Саммерфилду «Быстрое программирование GUI с помощью Python и Qt», и я, должно быть, что-то пропустил, потому что я не могу понять следующий механизм, чтобы связать воедино реальный «элемент экземпляра _», который я использую и полный различных типов данных и «элемент виджета _», который для удобства представляет его в модели QTreeWidget.

Настройка:

widget_item.setData(0, Qt.UserRole, QVariant(long(id(instance_item))))

Получение

widget_item.data(0, Qt.UserRole).toLongLong()[0]

Такие вещи, как toLongLong(), вообще не кажутся "Pythonic", и почему мы вызываем Qt.UserRole и QVariant? являются ли функции «setData» и «данные» частью структуры Qt или это более общая команда Python?

5
задан RodericDay 14 July 2012 в 16:04
поделиться