Qt宏

来源:互联网 发布:百度音乐api接口 java 编辑:程序博客网 时间:2024/06/07 00:26

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 0
原创粉丝点击