Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Заполнение combobox'а из таблицы.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
smartchecker
Есть на форме несколько combobox'ов.
Как их правильно заполнять?

Надо ли делать такие извращения по каждому combobox'у?
    formatsModel = new QSqlTableModel(this, QSqlDatabase::database(connectionName));
    formatsModel->setTable("formats");
    formatsModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
    formatsIdx = formatsModel->fieldIndex("id");
    formatsModel->select();

    ui->formatComboBox->setModel(formatsModel);
    ui->formatComboBox->setModelColumn(formatsModel->fieldIndex("format"));

    formatsMapper = new QDataWidgetMapper(this);
    formatsMapper->setModel(formatsModel);
    formatsMapper->addMapping(ui->formatComboBox, formatsIdx);


Или проще
    query = QSqlQuery(QSqlDatabase::database(connectionName));
    query.exec("SELECT `language` FROM langs ORDER BY `id`");

    QSqlRecord rec = query.record();
    int langCol = rec.indexOf("language");
    while (query.next()) {
        ui->langComboBox->addItem(query.value(langCol).toString());
    }

Основная цель - потом мне нужно в другую таблицу записать соотв. id.
Snake174
query = QSqlQuery( QSqlDatabase::database( connectionName ) );

if (query.exec("SELECT ID,LANGUAGE FROM langs ORDER BY ID"))
{
  while (query.next())
    ui->langComboBox->addItem( query.value(1).toString(), query.value(0).toInt() );
}
else
  qDebug() << "Error: " << query.lastError().text();

int ID = langComboBox->itemData( langComboBox->currentIndex(), Qt::UserRole ).toInt();
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.