Qt的Q_CLASSINFO简要分析 新建一个继承于QObject的空白类,如下: classMyInfo:publicQObject { Q_OBJECTpublic:explicitMyInfo(QObject *parent =nullptr); signals:publicslots: }; 然后加上Q_CLASSINFO,如下: classMyInfo:publicQObject {Q_OBJECTQ_CLASSINFO("Version","1.0.0")Q_CLASSINFO("Author","xin...
一、属性的定义 属性定义案例 二、属性的使用 三、动态属性 四、类的附加信息
属性系统还有一个宏Q_CLASSINFO(),可以为类的元对象定义为(名称——值),就像Python中的Dict一样,例如: classQMyClass :publicQObject { Q_OBJECT Q_CLASSINFO("author","Wang") Q_CLASSINFO("company","UPC") Q_CLASSINFO("version","3.0.1")public: ... }; 用Q_CLASSINFO()宏定义附加类信息后,...
QObject 类是所有使用元对象系统的类的基类。 在一个类的 private 部分声明 Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽。 MOC(元对象编译器)为每个 QObject 的子类提供必要的代码来实现元对象系统的特性。 构建项目时,MOC 工具读取 C++ 源文件,当它发现类的定义里有 Q_OBJECT 宏时,它就会...
Qt 文档阅读笔记-Q_CLASSINFO 官方解析与实例 官方解析 Q_CLASSINFO 这个宏为类提供额外的信息,要想获取这个 Q_CLASSINFO 这个信息要使用QObject::metaObject()。Qt 在 Active Qt,Qt D-BUS 以及 QML 中都限制使用这个特征。 这个额外的信息通过 Name 以及 Value 来提醒,存储的都是字符串 例子: class MyClass...
class XTest : public QObject { Q_OBJECT Q_CLASSINFO("author", "Sabrina Schweinsteiger") Q_PROPERTY(bool autoStartup READ autoStartup WRITE setAutoStartup NOTIFY sigAutoStartup) public: XTest(QObject* p = nullptr) {} ~XTest() {} public: ...
Q_CLASSINFO 宏用于定义类的元数据,这些元数据可以在运行时通过 Qt 的元对象系统访问。元数据可以是任何键值对,例如作者信息、版本号、URL等。以下是使用 Q_CLASSINFO 宏定义类元数据的方法: 将Q_CLASSINFO 宏添加到类声明中:在类的声明中,将 Q_CLASSINFO 宏添加到公共部分。为宏提供键名(一个字符串字面量...
const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection); 可以看到,这里面确实只利用了前面包装的字符串——即函数名,问题是,你见过 C++ 中有如下的调用吗? 代码语言:c++ 复制 pMyclass->"method1"; //或者
如moc文件解析一篇中qt_meta_stringdata_XTest是XTest的QMetaObject::d.stringdata属性,XTest中QMetaClassInfo::mobj指向XTest::QMetaObject,QMetaClassInfo::handle值为"XTest"字符串的首地址位置 qt_meta_stringdata_XTest定义如下: static const qt_meta_stringdata_XTest_t qt_meta_stringdata_XTest = ...