QT开发中文网

详细介绍Q_INVOKABLE

Q_INVOKABLE是一个Qt元对象系统中的宏,用于将C++函数暴露给QML引擎。具体来说,它使得在QML代码中可以直接调用C++类中被标记为Q_INVOKABLE的成员函数。

通常,在C++和QML之间进行交互需要使用QObject派生类。但是,并非所有QObject派生类中的所有成员函数都可以在QML中使用。这时候,我们就需要使用Q_INVOKABLE来标记那些想要暴露给QML的函数。

例如,假设我们有一个名为MyClass的C++类,其中定义了一个doSomething()函数:

class MyClass : public QObject {
    Q_OBJECT
public:
    MyClass(QObject *parent = nullptr);
    Q_INVOKABLE void doSomething();
};

现在我们可以在QML中实例化MyClass并调用doSomething()方法:

import QtQuick 2.0

Item {
   id: myItem
   Component.onCompleted: {
      var myObject = new MyClass();
      myObject.doSomething();
   }
}

需要注意的是,只有成员函数被标记为Q_INVOKABLE才能够在QML代码中直接调用。如果没有标记为Q_INVOKABLE,则会导致编译错误或运行时异常。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=2259

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?