gpt4 book ai didi

c++ - QT - 如何从组合框中检索 QVariant 值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:51 24 4
gpt4 key购买 nike

我正在使用 QVariant 将对象存储在 Qcombobox 中,这似乎工作正常。这是实现代码:

在标题中为 QVariant 添加类型:

Q_DECLARE_METATYPE(CDiscRecorder*)

pDiscRecorder 转换为 CDiscRecorder:

CDiscRecorder* pDiscRecorder = new CDiscRecorder();

然后存入combobox

ui->cbDrives->addItem(QString::fromWCharArray(strName), QVariant::fromValue(pDiscRecorder));

当我尝试将其拉出时出现问题:

CDiscRecorder* discRecorder = this->ui->cbDrives->itemData(index).value<CDiscRecorder*>;

我收到错误:

error C3867: 'QVariant::value': function call missing argument list; use '&QVariant::value' to create a pointer to member

我尝试实现错误代码中的提示无济于事,我已经关注了线程Add QObject in the combo box of Qt要实现此行为,如何取回我的对象​​?

谢谢

最佳答案

编译器提示您缺少参数列表 - 您需要做的就是添加方括号以告诉它您正在尝试调用该函数。所以改成

CDiscRecorder* discRecorder = this->ui->cbDrives->itemData(index).value<CDiscRecorder*>();

它应该可以工作。这是相当长的一行,将其分解可能会更清晰

QVariant variant = this->ui->cbDrives->itemData(index);
CDiscRecorder* discRecorder = variant.value<CDiscRecorder*>();

关于c++ - QT - 如何从组合框中检索 QVariant 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17981451/

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