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

kir*_*off 1 c++ user-interface qt 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);
Run Code Online (Sandbox Code Playgroud)

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

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

normBox->setCurrentIndex(model->getNormIdx());
Run Code Online (Sandbox Code Playgroud)

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

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

han*_*ank 6

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

normBox = new QComboBox(page1);
...
m_normBox->setCurrentIndex(0);
Run Code Online (Sandbox Code Playgroud)

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

这段代码应该有效:

QComboBox* combo = new QComboBox;

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

combo->addItems(list);
combo->setCurrentIndex(0);
Run Code Online (Sandbox Code Playgroud)