QInputDialog操作取决于ComboBox中的项目选择

时间:2014-10-15 07:00:48

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

我有一个输入对话框(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执行不同的操作,具体取决于组合框中的所选项目...但是,当用户在框中选择新项目而不是单击确定时,将调用此方法。

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

2 个答案:

答案 0 :(得分:2)

通过信号textValueChanged替换textValueSelected

答案 1 :(得分:2)

处理模态对话框结果的常用方法是:

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

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