C++/Qt小技巧集锦

1、简单的注释

除了/*...*///...还可以使用下面的方式注释

#if 0    
需要注释的代码     
#endif

当同一份代码,根据实际情况,可能需要执行不同的代码块时,可通过宏定义自由更换代码块:

#define _USE_NEW_PROTOCOL_
#ifndef _USE_NEW_PROTOCOL_
	dosomething();
#else
    dosomething();
#endif

2、Qt使用cout输出更详细的调试信息

使用C语言全局宏输出调试信息所在文件、行号

#define cout qDebug()<<"["<<__FILE__<<":"<<__LINE__<<"]"
构造函数中:
cout<<"csdn";

结果如图:
这里写图片描述
注意:FILE和LINE两边各是两个下划线__
当然,也可以直接用qDebug输出:
文件、行号、所在函数

qDebug() << __FILE__ << __LINE__ << __FUNCTION__ << "This is a test";

结果:******.cpp 54 initForm This is a test

使用#define宏定义

#define qDebug() qDebug() <<"["<< __FILE__ <<__FUNCTION__<< __LINE__<<"]"<<":"

3、Qt可以使用第三方的信号与槽机制。

你甚至可以在同一个项目里使用两种信号与槽机制。只需要把下面一行加到你的项目文件(.pro)

CONFIG += no_keywords

这行命令式告诉Qt在使用第三方类库如boost时不定义signals,slots和emit关键字。在no_keywords标志下继续使用Qt的信号与槽,只要简单替换源代码中Qt的moc关键字为相对应的Qt宏Q_SIGNALS (Q_SIGNAL), Q_SLOTS (Q_SLOT) 和Q_EMIT。

例如:

原来: private slots:
现在 :private Q_SLOTS

4、屏蔽警告

CONFIG += warn_off

有时候我们需要屏蔽一些无用的警告,不过,还是建议把警告保留,方便调试。

5、设置软件版本号

.pro文件中加入以下代码设置版本号为1.0.0.0

VERSION = 1.0.0.0

6、跨平台代码

.pro文件中,设置依赖文件:
win32 { SOURCES += qextserialport_win.cpp } unix { SOURCES += qextserialport_unix.cpp }
.cpp文件判断系统
#ifdef Q_OS_WIN//如果是windows系统
#ifdef Q_OS_LINUX//如果是Linux系统

7、屏蔽qDebug信息

平时代码测试会用到很多debug输出,当想屏蔽工程里面所有的debug输出时,
可以在pro文件中添加这么一行,

DEFINES+= QT_NO_DEBUG_OUTPUT  

8、检测程序版本

检测程序是Debug版还是Release版

#ifdef QT_NO_DEBUG  
qDebug() << "release mode";  
#else  
qDebug() << "debug mode";  
#endif

9、提高Qt编译速度:

.pro文件中加入: QMAKE_CXXFLAGS += /MP 指定/MP编译选项,编译器将使用并行编译,同时起多个编译进程并行编译不同的cpp文件

#msvc支持设置
msvc {
    MSVC_CCFLAGS =
    #this three pragma cause mingw errors
    msvc:MSVC_CCFLAGS += /wd"4819" /wd"4244" /wd"4100"
#UTF8编码
DEFINES += __MSVC_UTF8_SUPPORT__
msvc:MSVC_CCFLAGS += /execution-charset:utf-8
msvc:MSVC_CCFLAGS += /source-charset:utf-8
#msvc:MSVC_CCFLAGS += /utf-8 #这一个是快捷方式,顶上边两个。

#指定/mp编译选项,编译器将使用并行编译,同时起多个编译进程并行编译不同的cpp
msvc:MSVC_CCFLAGS += /MP
#指出:这个FLAG只能用于MSVC

msvc:QMAKE_CFLAGS += $${MSVC_CCFLAGS}
msvc:QMAKE_CXXFLAGS += $${MSVC_CCFLAGS}

#指定stable.h这个头文件作为编译预处理文件,MFC里这个文件一般叫stdafx.h 然后在 stable.h里 包含你所用到的所有 Qt 头文件
#在.pro 文件中加入一行, 加在这里,加速编译。
#msvc:PRECOMPILED_HEADER = $${PWD}b-qt.h
#指出:precompiler header只能用于MSVC
#这个功能可用,可是编译问题比较多,不方便,所以默认不打开。

猜你喜欢

转载自blog.csdn.net/qq_44013790/article/details/106409865
今日推荐