gpt4 book ai didi

c++ - QInputDialog.getItem() 获取项目索引

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:40 25 4
gpt4 key购买 nike

我有一些列表和QInputDialog。我的列表中可能有相同的字符串,所以我不想得到字符串结果而是项目索引。是真的吗?

QStringList list;
for (Serial serial: serialList->vector) {
list.append(serial.name);
}

QInputDialog *dialog = new QInputDialog();
bool accepted;
QString item = dialog->getItem(0, "Title", "Label:", list, 0, false, &accepted);
if (accepted && !item.isEmpty()) {
qDebug() << dialog->?????; //here i want to see index of choosen item
}

我尝试使用 result() 但它不起作用。请帮助。

最佳答案

不,QInputDialog 没有这样的方法。但当然,此信息在对话框中有组合框。

你能访问这个组合框吗?

我认为这不是个好主意。看source code QInputDialog 的:

void QInputDialog::setComboBoxItems(const QStringList &items)
{
Q_D(QInputDialog);
d->ensureComboBox();
d->comboBox->blockSignals(true);
d->comboBox->clear();
d->comboBox->addItems(items);
d->comboBox->blockSignals(false);
if (inputMode() == TextInput)
d->chooseRightTextInputWidget();
}

如您所见,您的组合框被 d-pointer 隐藏,这在 Qt 中是正常做法(隐藏实现细节)。 More information here.

可能是最好的解决方案:

使用indexOf()来自 QStringList 的方法。例如:

int index = list.indexOf(item);

关于c++ - QInputDialog.getItem() 获取项目索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com