Qt小技巧集锦

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

#if 0    
需要注释的代码     
#endif
 
 
  • 1
  • 2
  • 3

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

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

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

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

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

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

使用#define宏定义

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

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

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

CONFIG += no_keywords
 
 
  • 1

这行命令式告诉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
 
 
  • 1
  • 2

4、屏蔽警告

CONFIG += warn_off
 
 
  • 1

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

5、设置软件版本号

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

VERSION = 1.0.0.0
 
 
  • 1

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  
 
 
  • 1

8、检测程序版本

检测程序是Debug版还是Release版

#ifdef QT_NO_DEBUG  
qDebug() << "release mode";  
#else  
qDebug() << "debug mode";  
#endif
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

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

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

待续……

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值