【问题标题】:QInputDialog action depending on item selection in ComboBoxQInputDialog 动作取决于 ComboBox 中的项目选择
【发布时间】:2014-10-15 07:00:48
【问题描述】:

我有一个输入对话框 (Qt),组合框中有三个选项。我希望根据在组合框中选择的项目在 Ok 上启动不同的操作。目前,我有

QInputDialog qDialog ;

QStringList items;
items << QString("Choice 1");
items << QString("Choice 2");
items << QString("Choice 3");

qDialog.setOptions(QInputDialog::UseListViewForComboBoxItems);
qDialog.setComboBoxItems(items);
qDialog.setWindowTitle("Choose action");

QObject::connect(&qDialog, SIGNAL(textValueChanged(const QString &)), 
           this, SLOT(onCompute(const QString &)));

qDialog.exec();

插槽oncompute 根据组合框中的所选项目执行不同的操作...但是当用户在框中选择新项目时调用此操作,而不是单击确定。

如何检索在组合框中选择的项目并在单击确定时执行操作?

【问题讨论】:

    标签: c++ qt events user-interface dialog


    【解决方案1】:

    用信号textValueSelected替换textValueChanged就可以了。

    【讨论】:

      【解决方案2】:

      处理模态对话框结果的通常方法是这样的:

      QInputDialog qDialog;
      ...
      if (qDialog.exec())
      {
         onCompute(qDialog->textValue());
      }
      

      您执行一个对话框,等待结果,然后根据单击的对接(确定或取消)处理结果。

      【讨论】:

        猜你喜欢
        • 2015-10-20
        • 2023-03-23
        • 2016-01-17
        • 1970-01-01
        • 2018-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多