2012-07-20 282 views
1

我想在打开编辑器时选择组合框中的给定项目,并加载在编辑器中应更新的给定数据。 Combobox不能按预期工作!Qt QComboBox - 改变当前索引不是预期的

我有这些线在选择特定项目,当我打开窗户:

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); 

但第一个项目“点心”当我创建编辑器没有在下拉列表中显示。

然后,我实现我的“负荷”功能,这应该加载界面保存的数据与进修结束:

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

其中模型具有准确的成员normIdx。

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

回答

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); 
+0

对不起,确实setCurrentIndex是我所呼吁的组合为addItems的方法。那么你建议不起作用。 – octoback 2012-07-20 11:58:11

+0

看看你的代码。目前你有两个组合框:'normBox'和'm_normBox'。也许这是一个问题? – hank 2012-07-20 12:04:56