【发布时间】:2016-05-08 22:07:37
【问题描述】:
我的用户界面上有一个 QComboBox,并像这样设置模型:
QStringListModel* model = new QStringListModel;
QStringList stringlist;
stringlist << "Test1" << "Test2" << "Test3";
model->setStringList(stringlist);
ui->comboBox->setModel(model);
现在我想将当前索引更改为无(这样我得到一个空白组合框)。
我已经尝试使用 ui->comboBox->setCurrentIndex(-1); 将当前索引设置为 -1,但这会导致 qlist 中的索引超出范围:
ASSERT failure in QList<T>::operator[]: "index out of range", file F:/Qt/5.4/mingw491_32/include/QtCore/qlist.h, line 486
【问题讨论】:
-
您可以创建自己的模型,该模型将为无效索引返回一个空的
QString()。或者只是子类化QStringListModel并覆盖data方法(并且,可能还有index方法)。 -
看起来像 ui->comboBox->setCurrentIndex(-1);工作得很好。崩溃是由我的代码中的错误引起的。