gpt4 book ai didi

c++ - 没有要调用的匹配函数 - 编译器说我在调用 (QObject *) 时调用 (QObject *&)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:49 25 4
gpt4 key购买 nike

这是代码:

void invokeQMLFunction2Arg(QObject * object, QString func, QVariant p1, QVariant p2) {
QMetaObject::invokeMethod(object, func, Qt::DirectConnection, Q_ARG(QVariant, p1), Q_ARG(QVariant, p2));
}

这是错误:

error: no matching function for call to 'QMetaObject::invokeMethod(QObject*&, QString&, Qt::ConnectionType, QArgument<QVariant>, QArgument<QVariant>)'

我错过了什么?我用一个指针调用 invokeMethod(),但编译器提示它是一个指针引用。

最佳答案

您正在尝试将 QString 传递给第二个参数,而第二个参数应该是 const char*。将其转换为正确的类型,因为没有隐式转换。您需要首先决定将其转换为 QByteArray 的方式,因此这是您可能编写的一个示例:

QMetaObject::invokeMethod(object, func.toUtf8().constData(), Qt::DirectConnection, Q_ARG(QVariant, p1), Q_ARG(QVariant, p2));

关于c++ - 没有要调用的匹配函数 - 编译器说我在调用 (QObject *) 时调用 (QObject *&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23197572/

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