Russian Qt Forum
Сентябрь 30, 2024, 16:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Добавить пользовательские данные в QTreeWidgetItem.  (Прочитано 7158 раз)
White Owl
Гость
« : Май 15, 2009, 22:43 »

Надо приклеить к QTreeWidgetItem указатель на свой дополнительный объект.
Делаю:
Код:
-- в заголовке
class MyObj {....};
Q_DECLARE_METATYPE(MyObj*);

-- потом использую:
        MyObj *obj = new MyObj(...);
        QTreeWidgetItem *twi = new QTreeWidgetItem();
        twi->setText(0, obj->getName());
        QVariant var;
        var.setValue(obj);
        twi->setData(0, Qt::UserRole, var);
Все работает, все замечательно, но нервирует создание промежуточной переменной. Можно ли как-то избавиться от ее создания и передавать obj напрямую в twi->setData()?
Записан
Makss
Гость
« Ответ #1 : Май 15, 2009, 23:18 »

а так сойдёт?

Код:
class QMyTreeWidgetItem : public QTreeWidgetItem
{
private:
protected:
public:
//конструктор
...
//Твои данный
MyObj *obj;
};
Записан
White Owl
Гость
« Ответ #2 : Май 16, 2009, 00:09 »

Нет, не сойдет. У меня эти объекты не только на дереве висят.
Записан
Tonal
Гость
« Ответ #3 : Май 18, 2009, 07:56 »

Код:
        MyObj *obj = new MyObj(...);
        QTreeWidgetItem *twi = new QTreeWidgetItem();
        twi->setText(0, obj->getName());
        twi->setData(0, Qt::UserRole, QVariant::fromValue(obj));
Так?
Записан
White Owl
Гость
« Ответ #4 : Май 19, 2009, 21:40 »

Yep!
That is exactly what I was looking for, thank you.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 21.