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 #这个功能可用,可是编译问题比较多,不方便,所以默认不打开。