C++ 如何使用QSqlQueryModel将项动态添加到QComboBox

C++ 如何使用QSqlQueryModel将项动态添加到QComboBox,c++,qt,qcombobox,C++,Qt,Qcombobox,我是QT新手,正在学习如何填充QComboBox。我知道QComboBox的addItem()方法用于添加新项。但就我而言,它不起作用。下面是我代码的相关部分 QSqlQuery q; q.prepare("SELECT fname from Person"); if(q.exec()) { QSqlQueryModel *model = new QSqlQueryModel(this); model->setQuery

我是QT新手,正在学习如何填充QComboBox。我知道QComboBox的addItem()方法用于添加新项。但就我而言,它不起作用。下面是我代码的相关部分

    QSqlQuery q;

    q.prepare("SELECT fname from Person");

    if(q.exec())
    {
        QSqlQueryModel *model = new QSqlQueryModel(this);

        model->setQuery(q);

        ui->comboFName->setModel(model);

        db.close();
    }

    QString item = "XYZ";

    ui->comboFName->addItem(item);

我的QComboBox正在填充来自QSqlQueryModel的数据,但手动插入addItem()不起作用。

您应该决定是使用模型还是手动方式添加项,因为使用这两种方式都会导致奇怪的行为。

一旦设置UIComponent的模型,它将成为项的源,它将从此模型中填充

QSqlQueryModel是只读的,因此您不能修改它(类引用页)

无法将项添加到此SQL结果模型

要添加项,必须清除(函数clear())模型,然后使用函数AddItem

希望这会有所帮助