欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt小技巧集锦

程序员文章站 2024-01-04 11:15:51
...

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

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

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

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

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

结果如图:
Qt小技巧集锦
注意: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

待续……

上一篇:

下一篇: