设为首页 加入收藏

TOP

[Qt开发探幽(二)]浅谈关于元对象,宏和Q_ENUM(三)
2023-09-09 10:25:47 】 浏览:208
Tags:谈关于 元对象 Q_ENUM
GADGET意味着这个类不一定需要继承QObject类了

适用于不继承QObject但仍希望使用QMetaObject提供的一些反射功能的类。就像Q_OBJECT宏一样,它必须出现在类定义的私有部分中。

Q_GADGET可以有Q_ENUM、Q_PROPERTY和Q_INVOKABLE,但不能有信号或插槽。
Q_GADGET使类成员staticMetaObject可用。staticMetaObject的类型为QMetaObject,并提供对用Q_ENUM声明的枚举的访问。

如以下代码:

class TSG_Device : public TSG_Caller {
	/// <summary>
/// 设备状态
/// </summary>

public:
	enum class DeviceState
	{
		DS_None,
		DS_Unknown,
		DS_Disconnected,
		DS_Connected,
		DS_Working,
		DS_Pause,
		DS_Stop
	}; Q_ENUM(DeviceState)

		enum class DeviceOpen {
		DO_Open,
		DO_Close
	}; Q_ENUM(DeviceOpen)
}

这样一个内嵌的枚举类,也可以用QMetaEnum做到之前我们想要做的事

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++算法之旅、04 基础篇 | 第一章.. 下一篇C++系列三:QT初识

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目