Q_INVOKABLE
在 Qt 5.12 中,Q_INVOKABLE
宏的使用与其他 Qt 版本相似。这个宏允许你将 C++ 类中的方法暴露给 QML,从而可以在 QML 中直接调用这些方法。这是实现 QML 和 C++ 之间交互的重要手段。
下面是一个如何使用 Q_INVOKABLE
的简单例子:
-
定义一个 C++ 类并使用
Q_INVOKABLE
: 首先,在你的 C++ 类中定义一个方法,并在声明前加上Q_INVOKABLE
。这个宏告诉 Qt 的元对象系统这个方法可以从 QML 调用。#include <QObject> class MyClass : public QObject { Q_OBJECT public: MyClass(QObject *parent = nullptr) : QObject(parent) {} Q_INVOKABLE void myMethod(const QString ¶m) { // ... 方法实现 ... } };
2、在 QML 中调用这个方法: 在 QML 中,你可以直接调用这个方法,就像调用任何 QML 对象的方法一样