Qt宏


Q_CLASSINFO ( Name, Value ) //声明类信息


Q_DISABLE_COPY ( Class ) // 隐藏拷贝构造函数


Q_EMIT Q_SIGNALS Q_SLOTS //CONFIG += no_keywords,它告诉QT不要定义moc关键字signals,slots和emit,因为这些名字可能将被用于第三方库,例如Boost。你只需简单的用QT宏将他们替换为 Q_SIGNALS, Q_SLOTS,和 Q_EMIT,就可以继续使用信号槽.


Q_ENUMS ( ... ) ; //声明枚举型类对象


Q_FLAGS ( ... ) //声明一个flags 并指明可以指定的值


Q_INTERFACES ( ... ) //用于qt插件,该宏告诉qt


Q_DECLARE_INTERFACE(classname) ; //声明一个QObject_cast<classname*>模板函数


Q_EXPORT_PLUGIN2() pluginName 没有被使用 (看下一节静态插件来理解它的用途)
#define Q_EXPORT_PLUGIN2(pluginName, PluginClass) \
    extern "C" PluginClass *qt_plugin_instance() { return new pluginClass; }
    extern "C" const char *qt_plugin_verification_data() { return "pattern=QT_PLUGIN_VERIFICATION_DATA\nversion=4.5.3\ndebug=false\nbuildkey=x86_64 linux g++-4 full-config";


Q_IMPORT_PLUGIN2();创建一个插件并返回




Q_INVOKABLE  // Q_INVOKABLE void invokableMethod(); 允许该函数通过metaobject系统调用,invokeMethod可以调用该类函数
   例如 invokeMethod(pushButton, "animateClick",Qt::QueuedConnection,...);实现调用


Q_OBJECT ;//在类声明里必须包含该宏以便支持信号槽或其他元对象系统的服务


Q_PROPERTY ( ... ) ; //声明一个继承自QObject类的一个属性
  Q_PROPERTY(type name             //属性类型和名称
            READ getFunction             //读取函数
            [WRITE setFunction]         //写函数
            [RESET resetFunction]      //重置函数
            [NOTIFY notifySignal]        //值改变时通知
            [DESIGNABLE bool]           //属性能否在Qt Designer中编辑
            [SCRIPTABLE bool]            //能否在QScript中使用该属性
            [STORED bool]                  //表明这是一直存在的
            [USER bool]                      //是否可以被用户所编辑
            [CONSTANT]                     //设定属性是不可修改的 所以不能跟WRITE或者NOTIFY同时出现
            [FINAL])                           //表明该属性不会被派生类中重写
    例如:Q_PROPERTY(QString title READ title WRITE setTitle USER true),QVariant property(const char* name),void setProperty(const char* name,QVariant)可以读写属性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值