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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlQuery работа запроса в QItemDelegate  (Прочитано 2365 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Август 24, 2016, 11:16 »

Пытаюсь через делегат послать запрос таблице для заполнения ComboBox-а данными из запроса
Код
C++ (Qt)
ComboBoxDelegate::ComboBoxDelegate(QObject *parent):
   QItemDelegate(parent)
{
}
 
ComboBoxDelegate::~ComboBoxDelegate()
{
}
 
QWidget *ComboBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
   if(index.column() == 0 || index.column() == 1){
       QComboBox *cb = new QComboBox(parent);
       return cb;
   }
}
 
void ComboBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
    if(index.column() == 0 || index.column() == 1){
        QComboBox *cb = static_cast<QComboBox* >(editor);
 
        //послать запрос для забора возможных данных, чтобы делать выбора
        //чтобы ее заполнить типа как внизу
        //cb->addItem("jhjkh");
        //cb->addItem("kljkj");
 
        QSqlQuery query;
        qDebug()<<query.exec("SELECT * FROM TEZ_DEVICESTYPES");
        qDebug()<<query.record();
    }
 
}
 
void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
    if(index.column() == 0 || index.column() == 1){
        QComboBox *cb = static_cast<QComboBox* >(editor);
        QString str = cb->currentText();
        model->setData(index,str,Qt::EditRole);
   }
}
 
Сам запрос выполняется.
И в консоль выводится
Код:
true 
QSqlRecord( 2 )
 " 0:" QSqlField("TDEVICE_CODE", int, length: 2, precision: 0, required: yes, generated: yes, typeID: 500) ""
 " 1:" QSqlField("TEZ_CODE", int, length: 2, precision: 0, required: yes, generated: yes, typeID: 500) ""

Скажите как мне достать все данные из нужной мне колонке, чтобы заполнить ComboBox.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #1 : Август 25, 2016, 09:56 »

Разобрался  Улыбающийся спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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