Пытаюсь через делегат послать запрос таблице для заполнения 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.