Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Fregloin от Январь 09, 2014, 17:29



Название: Вывод нескольких колонок из модели в QComboBox
Отправлено: Fregloin от Январь 09, 2014, 17:29
Подскажите плиз, можно ли каким то образом (кроме изобретения велосипеда и костылей) отображать в комбобоксе несколько колонок из модели?
Сейчас отображается только один, нашел метод setModelColumn, который задает какую колонку выводить. В модели есть несколько колонок, id, name, и прочее.
Нужно вывести в комбобоксе как id[проблел]name
Эта же модель используется в QTableView. Поэтому выводить id:name строкой не катит.
Или тупо делать костыли? :(


Название: Re: Вывод нескольких колонок из модели в QComboBox
Отправлено: gil9red от Январь 09, 2014, 17:41
Может?
Код
C++ (Qt)
void QComboBox::setView ( QAbstractItemView * itemView )
 


Название: Re: Вывод нескольких колонок из модели в QComboBox
Отправлено: Fregloin от Январь 09, 2014, 17:47
Да уже нашёл, спасибо. Частично проблему решает с отображением и выбором. Но вот беда, после того как кобобокс закрывается, в текущем тексте отображается только значение с одной колонки модели. Переписать текст с помощью
Код:
void EditAlertDialog::on_objectBox_currentIndexChanged(int index)
{
    frailObject = objectBox->itemData(index,CRailObjectListModel::RailObjectRole).value<CRailObject*>();
    if(frailObject)
    {
        objectBox->setCurrentText(QString("%1 : %2").arg(frailObject->objectId()).arg(frailObject->objectName()));
    }
    else
    {
        objectBox->setCurrentText(trUtf8("Не выбран"));
    }
}
не дало никакого эффекта, но оно и понятно.


Название: Re: Вывод нескольких колонок из модели в QComboBox
Отправлено: Serr500 от Январь 09, 2014, 21:13
Тут, я полагаю, выход один - переписать комбо-бокс.


Название: Re: Вывод нескольких колонок из модели в QComboBox
Отправлено: Fregloin от Январь 14, 2014, 11:31
Спасибо, может так и придется делать.