Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: PavelVX от Декабрь 12, 2011, 11:57



Название: QComboBox как вставить элемент с дополнительным UserRole?
Отправлено: PavelVX от Декабрь 12, 2011, 11:57
Есть QComboBox, вставляю в него элементы addItem(Text, UserData). Но понадобилось еще доп  параметр впихнуть.
Как это сделать, типа Qt::UserRole+1.
combo->addItem(Text, Qt::UserRole, Qt::UserRole+1)?
Подсунуть модель и там творить что хотим нельзя :(


Название: Re: QComboBox как вставить элемент с дополнительным UserRole?
Отправлено: madRoger от Декабрь 12, 2011, 12:07
посмотри на  void QComboBox::setItemData (int index,const QVariant & value,int role = Qt::UserRole)


Название: Re: QComboBox как вставить элемент с дополнительным UserRole?
Отправлено: PavelVX от Декабрь 12, 2011, 12:44
А можно как-то перед вставкой item в комбобокс, поустанавливать у этого айтема нужные мне роли? Что-то я не догоняю, как это делать.
Если я правильно понимаю, то void QComboBox::setItemData (int index,const QVariant & value,int role = Qt::UserRole) - мне придется второй раз проходить по всему списку итемов, что неправильно. Правильнее задать все нужные атрибуты и потом впихнуть итем в комбобокс.


Название: Re: QComboBox как вставить элемент с дополнительным UserRole?
Отправлено: Странник от Декабрь 12, 2011, 12:53
А можно как-то перед вставкой item в комбобокс, поустанавливать у этого айтема нужные мне роли? Что-то я не догоняю, как это делать.
Если я правильно понимаю, то void QComboBox::setItemData (int index,const QVariant & value,int role = Qt::UserRole) - мне придется второй раз проходить по всему списку итемов, что неправильно. Правильнее задать все нужные атрибуты и потом впихнуть итем в комбобокс.
без модели других вариантов нет.