我对QT很陌生,并学习如何填充QComboBox。我知道addItem()方法的QComboBox添加新的项目。但就我而言,这是行不通的。下面是我的代码的相关部分。
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()不起作用。
发布于 2014-10-24 14:14:54
您应该决定是使用模型还是手动方式添加项,因为使用这两种方式都会导致奇怪的行为http://www.qtcentre.org/threads/15391-QComboBox-gt-setModel-gt-Strange-behaviour。
发布于 2014-10-24 14:18:50
一旦您设置了UIComponent模型--它将成为项的源--它将从该模型中填充。
QSqlQueryModel是只读的,所以您不能修改它(类引用页http://qt-project.org/doc/qt-5/qsqlquerymodel.html)。
不能向此SQL结果模型添加项。
要添加项,必须清除模型(函数clear()),然后使用函数AddItem。
希望这能帮上忙。
https://stackoverflow.com/questions/26549412
复制相似问题