Название: Хранение id элемента QComboBox Отправлено: ddipp от Февраль 09, 2009, 18:54 QComboBox используется для выбора элементов, но у каждого элемента, кроме текста есть id.
Как можно сохранить этот id и однозначно идентифицировать выбранный элемент? Можно конечно отдельно хранить соответствие id - QComboBox.currentIndex(), но наверное есть лучшие решения? Название: Re: Хранение id элемента QComboBox Отправлено: lit-uriy от Февраль 09, 2009, 19:14 смотря откуда у тебя id, если ты его создаешь при заполнении списка (выпадающего), то проще по индексу.
Если берешь список готовый, например из БД, то можно поступить иначе: выпадающий список QComboBox'а - списковое представление, которое можно связать с QSqlTableModel, и указать QComboBox'у использовать такой-то столбец для выподающего списка, а другой столбец (в котором id) будешь использовать для своих прочих нужд. Название: Re: Хранение id элемента QComboBox Отправлено: Alex03 от Февраль 09, 2009, 19:42 QComboBox используется для выбора элементов, но у каждого элемента, кроме текста есть id. И в Как можно сохранить этот id и однозначно идентифицировать выбранный элемент? Можно конечно отдельно хранить соответствие id - QComboBox.currentIndex(), но наверное есть лучшие решения? Код: void addItem ( const QString & text, const QVariant & userData = QVariant() ) Код: void insertItem ( int index, const QString & text, const QVariant & userData = QVariant() ) Можно и кучу всевозможных данных засунуть в каждый элемент с помощью Код: void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole ) Код: QVariant itemData ( int index, int role = Qt::UserRole ) const P.S. Это касается не только QComboBox-а, но и многих других классов где внутри модель используется. Название: Re: Хранение id элемента QComboBox Отправлено: ddipp от Февраль 09, 2009, 20:16 Вот это уже полезно. Спасибо, сейчас буду попробовать.
|