Qt QComboBox - 不按预期更改当前索引

时间:2012-07-20 10:47:08

标签: c++ qt user-interface combobox refresh

我想在打开编辑器时选择comboBox中的给定项目,以及加载应在编辑器中更新的给定数据。 Combobox没有按预期工作!

当我打开窗口时,我有这些行已经选择了项目:

normBox = new QComboBox(page1);
gridBox->addWidget(normBox, 2, 1, 1, 1);
QStringList normsLst;
normsLst.append(tr("sum"));
normsLst.append(tr("maxF"));
normsLst.append(tr("sumF"));
setComboBoxItems(normsLst, m_normBox);
m_normBox->setCurrentIndex(0);

但是当我创建编辑器时,第一项'Sum'不会显示在组合框中。

然后,我实现了我的'load'函数,它应该在接口中加载保存的数据,并以复习结束:

normBox->setCurrentIndex(model->getNormIdx());

其中model具有准确的成员normIdx。

如何在Qt的组合框中实现正确的选择?

1 个答案:

答案 0 :(得分:6)

也许你创建了一个组合框,然后设置另一个的当前索引?

normBox = new QComboBox(page1);
...
m_normBox->setCurrentIndex(0);

什么是setComboBoxItems(normsLst, m_normBox)?我没有在Qt文档中找到这个函数(有两个参数)。

此代码应该有效:

QComboBox* combo = new QComboBox;

QStringList list;
list << "sum" << "maxF" << "sumF";

combo->addItems(list);
combo->setCurrentIndex(0);