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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Делегат на основе QComboBox, как вытащить значения из QSqlQueryModel?  (Прочитано 2667 раз)
PavelVX
Гость
« : Май 19, 2011, 10:59 »

Создаю свой делегат на основе QComboBox. Моделью у него является QSqlQueryModel на основе запросов типа:
"select id, name from polu"

    DelegateModel = new QSqlQueryModel;
    DelegateModel->setQuery(DelegateSQL);
    QComboBox *editor = new QComboBox(parent);
    editor->setModel(DelegateModel);
    editor->setModelColumn(1);
    editor->setEditable(true);

Входящим для него значение является id по которому он и показывет нужный элемент списка и сохраняет мне id в ответ.
Проблема возникла с переопределением метода paint.
void ComboBoxDelegateA::paint (
        QPainter *painter,
        const QStyleOptionViewItem& option,
        const QModelIndex& index ) const {
}

Из index я могу выдернуть id, но нужно показывать name!
Подскажите, пожалуйста, как мне по id быстро вытащить name для отображения на форме???
Записан
pokidoff
Гость
« Ответ #1 : Июль 06, 2011, 15:43 »

Если сможешь найти ModelIndex айдишника (например храни хеш (int ID,QModelIndex index, ну или поиском), то можно сделать так
Код
C++ (Qt)
QString name = DelegateModel->index(index.row()/*индекс айдишника*/,1/*вторая колонка в модели*/).data().toString();
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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