Qt — QComboBox для выбора из справочника (внешний ключ)

В данном видео на простом примере показаны возможности и ограничения класса QComboBox для редактирования таблиц с внешним ключом. Попутно затронута тема работы класса QDataWidgetMapper и адаптация пользовательской модели для работы с QComboBox.

Скачать проект

2 Комментарии “Qt — QComboBox для выбора из справочника (внешний ключ)

  1. Существующий класс QComboBox можно использовать без ограничений, нужно добавить

    Я использую так:
    в MySQl таблицы port_params и converter_type, port_params имеет внешний ключ (5 столбец) на таблицу converter_type (на поле ID)

    m_paramModel = new QSqlRelationalTableModel(this);
    m_paramModel->setTable(«port_params»);
    m_paramModel->setEditStrategy(QSqlTableModel::OnManualSubmit);

    //5 — это 5-ый столбец в таблице port_params
    m_paramModel->setRelation(5, QSqlRelation(«converter_type», «id», «Name»));
    m_convertModel = m_paramModel->relationModel(5);

    m_paramMapper = new QDataWidgetMapper(this);
    m_paramMapper->setModel(m_paramModel);
    m_paramMapper->setItemDelegate(new QSqlRelationalDelegate(this));
    m_paramMapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);

    m_paramMapper->addMapping(ui->cbConv, 5);

    ui->cbConv->setModel(m_convertModel);
    ui->cbConv->setModelColumn(2);
    при вызове метода m_paramMapper->setCurrentIndex(); значение в комбобоксе ui->cbConv сразу же изменяется на соответствующее ему в таблице port_params. При изменении значения в комбобоксе, происходят изменения в модели m_paramModel

  2. хороший урок.
    Лев, а можешь записать урок на эту тему, только если модель для QCombobox будет древовидная.
    Я мудохаюсь и ничего не получается.
    Заранее спасибо

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *