Название: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: unkier от Декабрь 11, 2009, 10:54 как правильно связать QListWidgetItem и QTreeWidgetItem с моими данными ?
как узнать к чему относится итем полученный, например через itemAt(...) ? все эти итемы даже не QObject, а то можно было бы сделать setProperty. без наследования решается как нибудь ? Название: Re: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: BRE от Декабрь 11, 2009, 11:00 У этих элементов можно установить свои данные:
void QListWidgetItem::setData ( int role, const QVariant & value ) [virtual] QVariant QListWidgetItem::data ( int role ) const [virtual] А вот эти данные могут быть: * указателем на твой объект * индексом в коллекции (int) * ключом в коллекции (QString) .... Название: Re: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: unkier от Декабрь 11, 2009, 11:04 У этих элементов можно установить свои данные: void QListWidgetItem::setData ( int role, const QVariant & value ) [virtual] QVariant QListWidgetItem::data ( int role ) const [virtual] А вот эти данные могут быть: * указателем на твой объект * индексом в коллекции (int) * ключом в коллекции (QString) .... я на это дело смотрел, но role меня смутил. что он символизирует ? Название: Re: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: BRE от Декабрь 11, 2009, 11:07 я на это дело смотрел, но role меня смутил. что он символизирует ? http://doc.crossplatform.ru/qt/4.5.0/model-view-model.html#item-roleshttp://doc.crossplatform.ru/qt/4.5.0/model-view-programming.html Название: Re: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: unkier от Декабрь 11, 2009, 11:27 спасибо, прояснилось.
теперь другая проблема, данные запихнул вроде, но назад получить не получается. запихиваю: Код: m_list_item->setData(Qt::UserRole, QVariant(QVariant::UserType,this)); получаю Код: QVariant var_dev = item->data(Qt::UserRole); ошибка Код: /usr/include/QtCore/qmetatype.h: In static member function ‘static int QMetaTypeId2<T>::qt_metatype_id() [with T = QDevice*]’: Название: Re: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: BRE от Декабрь 11, 2009, 11:35 теперь другая проблема, данные запихнул вроде, но назад получить не получается. Читай документацию, без этого никак... ;)http://doc.crossplatform.ru/qt/4.5.0/qvariant.html#value http://doc.crossplatform.ru/qt/4.5.0/qvariant.html Название: Re: QListWidgetItem и QTreeWidgetItem правильно связать с моими данными Отправлено: unkier от Декабрь 11, 2009, 12:15 я ребус разгадал.
по моему эта пометка должна быть шрифтом покрупнее :) Код: Note: If you are working with custom types, you should use the Q_DECLARE_METATYPE() macro to register your custom type. |