我有一个输入对话框(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
执行不同的操作,具体取决于组合框中的所选项目...但是,当用户在框中选择新项目而不是单击确定时,将调用此方法。
如何检索在组合框中选择的项目并执行单击确定的操作?
答案 0 :(得分:2)
通过信号textValueChanged
替换textValueSelected
。
答案 1 :(得分:2)
处理模态对话框结果的常用方法是:
QInputDialog qDialog;
...
if (qDialog.exec())
{
onCompute(qDialog->textValue());
}
您执行一个对话框,等待结果,并根据点击的对接(确定或取消)处理结果。