QInputDialog操作取决于组合框中的项目选择

QInputDialog action depending on item selection in ComboBox

本文关键字:项目 选择 操作 取决于 组合 QInputDialog      更新时间:2023-10-16

我有一个输入对话框(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根据组合框中选择的项目执行不同的动作。。。但当用户在框中选择一个新项目时,这是调用的,而不是点击ok。

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

用信号textValueSelected替换textValueChanged做到了。

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

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

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