如果要导出的类定义了想在QML中使用的枚举类型,可以使用Q_ENUM宏将该枚举注册到元对象系统中 (5)Q_PROPERTY宏 Q_PROPERTY宏用来定义可以通过元对象系统访问的属性,通过它定义的属性,可以在QML中访问,修改,也可以在属性变化时发射特定的信号 例子: #ifndef COLORMAKER_H #define COLORMAKER_H #include <QObject>...
(4)C++的成员属性可以用Q_PROPERTY宏设置 (5)枚举体需要用Q_ENUMS导出 现在来举个例子: ``` #ifndef TESTBOX_H #define TESTBOX_H #include <QObject> class TestBox : public QObject { Q_OBJECT Q_ENUMS(ColorType) Q_PROPERTY(int mValue READ getValue WRITE setValue) public: explicit TestBox...
(1) 头文件保护 所有头文件都应该使用 #define 防止头文件被多重包含,命名格式为: // classname.h#pragmaonce#ifndefCLASSNAME_H_A37F2BB8_82AE_4426_87BD_8969C0000936#defineCLASSNAME_H_A37F2BB8_82AE_4426_87BD_8969C0000936// ……#endif//CLASSNAME_H_A37F2BB8_82AE_4426_87BD_8969C0000936 其中的...
(此外,如果已使用Q_ENUMS声明枚举,则可以使用枚举。) 通常,无论是否已向QML类型系统注册了QObject派生类,都可以从QML访问它们。但是,如果QML引擎要访问其他类型信息(例如,如果要将类本身用作方法参数或属性,或者要将其中一个枚举类型用于以这种方式使用),那么该类可能需要注册。 #ifndef CPPOBJECT_H #define CPPO...
onBegin: doSomething(Gemini.BALL_COLOR_RED)//2.调用,在QML中使用枚举类型的方式是<CLASS_NAME>.<ENUM_VALUE>} } 3、成员函数 #ifndef GEMINI_H#defineGEMINI_H#include<QObject>#include<QDebug>classGemini :publicQObject { Q_OBJECTQ_ENUMS(BALL_COLOR)public: ...
QML 中的 Text 类型对应 C++ 中的 QQuickText 类,下面是我摘取的部分代码,可以看到 Q_ENUMS 和 Q_PROPERTY 的使用: class QQuickText : public QQuickImplicitSizeItem { Q_OBJECT Q_ENUMS(HAlignment) Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) ...
#define OPERATION_H #include <QObject> #include "target.h" classOperation :publicQObject { Q_OBJECT public: explicitOperation(QObject *parent = 0); Q_INVOKABLEinlineTarget* createObject() {returnnewTarget; }//这里我们就是为了返回指针给QML ...
#define OPERATION_H #include <QObject> #include "target.h" class Operation : public QObject { Q_OBJECT public: explicit Operation(QObject *parent = 0); Q_INVOKABLE inline Target* createObject() { return new Target; }//这里我们就是为了返回指针给QML ...
枚举类的定义就是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,使用枚举可以很方便...
// Define the role names to be used enum RoleNames { NameRole = Qt::UserRole, HueRole = Qt::UserRole+2, SaturationRole = Qt::UserRole+3, BrightnessRole = Qt::UserRole+4 }; explicit RoleEntryModel(QObject *parent = 0); ~RoleEntryModel(); ...