代码之家  ›  专栏  ›  技术社区  ›  kiriloff

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

  •  1
  • kiriloff  · 技术社区  · 12 年前

    我希望在打开编辑器时,以及在加载应该在编辑器中更新的给定数据时,选择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);
    

    但当我创建编辑器时,第一项“总和”不会显示在组合框中。

    然后,我实现了我的“加载”功能,它应该加载以刷新结束的界面中保存的数据:

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

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

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

    1 回复  |  直到 9 年前
        1
  •  6
  •   hank    12 年前

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

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