Qt 宏


QString 转换为 const char *

qPrintable

#ifndef qPrintable
#  define qPrintable(string) QString(string).toLocal8Bit().constData()
#endif

QString 转换为 const wchar_t*

qUtf16Printable

#ifndef qUtf16Printable
#  define qUtf16Printable(string) \
    static_cast<const wchar_t*>(static_cast<const void*>(QString(string).utf16()))
#endif

消除变量定义未使用的警告

Q_UNUSED

#define Q_UNUSED(x) (void)x;

程序启动时执行

Q_CONSTRUCTOR_FUNCTION

void constructor()
{
    qDebug("constructor");
}
Q_CONSTRUCTOR_FUNCTION(constructor)

程序启动时输出

constructor

宏定义

#ifndef Q_CONSTRUCTOR_FUNCTION
# define Q_CONSTRUCTOR_FUNCTION0(AFUNC) \
    namespace { \
    static const struct AFUNC ## _ctor_class_ { \
        inline AFUNC ## _ctor_class_() { AFUNC(); } \
    } AFUNC ## _ctor_instance_; \
    }

# define Q_CONSTRUCTOR_FUNCTION(AFUNC) Q_CONSTRUCTOR_FUNCTION0(AFUNC)
#endif

展开宏

namespace { 
    static const struct AFUNC_ctor_class_ 
	{ 
        inline AFUNC_ctor_class_() { AFUNC(); } 
    } 
	AFUNC_ctor_instance_; 
}

程序退出前执行

Q_DESTRUCTOR_FUNCTION

void destructor()
{
    qDebug("destructor");
}
Q_DESTRUCTOR_FUNCTION(destructor)

程序启动时输出

destructor

宏定义

#ifndef Q_DESTRUCTOR_FUNCTION
# define Q_DESTRUCTOR_FUNCTION0(AFUNC) \
    namespace { \
    static const struct AFUNC ## _dtor_class_ { \
        inline AFUNC ## _dtor_class_() { } \
        inline ~ AFUNC ## _dtor_class_() { AFUNC(); } \
    } AFUNC ## _dtor_instance_; \
    }
# define Q_DESTRUCTOR_FUNCTION(AFUNC) Q_DESTRUCTOR_FUNCTION0(AFUNC)
#endif

展开宏

namespace { 
    static const struct AFUNC_dtor_class_ { 
	
        inline AFUNC_dtor_class_() { } 
		
        inline ~ AFUNC_dtor_class_() 
		{ 
			AFUNC(); 
		} 
    } AFUNC_dtor_instance_; 
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值