头文件包含了Qt类库的一些全局定义,包括基本的数据类型,函数和宏。一般的Qt类的头文件都会包含该文件中,所以不要显示的包含该文件也可以使用其中定义的内容。

1. 数据类型的定义

为确保在各个平台上的各个数据类型都有统一的长度,Qt为各个常见的数据类型定义了类型的符号,如:qint8就是signed char的类型定义:
typedef signed char qint8

2.函数

头文件包含了一些常用的函数的定义,这些函数多以模板类型作为参数,返回相应的模板类型,这个模板类型可以用任何其他类型替换。若以double和float类型数作为参数的,一般有连个参数版本的同名函数,如:qFuzzyIsNull(double b)和qFuzzyIsNull(float f)。
如:T qAbs(const T &value):返回变量value的绝对值
其中T即是模板类型,可以使用任何气体类型替换。

除了头文件中定义的一些常用函数定义以外,还有些基础数学运算函数在头文件中定义。

3.宏定义

头文件中定义了很多宏,常见的有如下宏:

  • QT_VERSION-----这个宏展开为数值形式0xMMNNPP(MM=major,NN=minor,PP=patch)表示Qt编译器的版本,如Qt编译器的版本为Qt5.9.1,则QT_VERSION为0x050901.这个宏常被用于条件编译设置,根据Qt版本不同,编译不同的代码段,如:
    #if QT_VERSION>=0x040100
    ………………………………
    #else
    ………………………………
    #endif

  • QT_VERSION_CHECK------这个宏展开为Qt版本号的一个整数表示
    #if(QT_VERSION>=QT_VERSION_CHECK(5.0.0))
    ………………………………
    #else
    ………………………………
    #endif

  • QT_VERSION_STR—这个宏展开为Qt版本号的字符串,如:“5.0.0”

  • Q_BYTE_ORDER、Q_BIG_ENDIAN、Q_LITTLE_ENDIAN------
    Q_BYTE_ORDER:表示系统内存中数据的字节序
    Q_BIG_ENDIAN:表示大端字节序
    Q_LITTLE_ENDIAN:表示小端字节序
    这些宏在判断系统字节序时会用到,如:
    #if Q_BYTE_ORDER==Q_LITTLE_ENDIAN
    ………………………………
    #endif

  • Q_DECL_IMPORT和Q_DECL_EXPORT
    在使用或设计共享库时,用于导入或者到处库的内容

  • Q_DECL_OVERRIDE
    在类定义中用于重载一个虚函数,例如在某个类中重载虚函数painEvent(),可以定义如下:
    void painEvent(QPainEvent*) Q_DECL_OVERRIDE
    注意:使用Q_DECL_OVERRIDE宏后, 重载的虚函数如果没有进行任何重载操作,编译器会报错。

  • Q_DECL_FINAL
    这个宏用于将一个虚函数定义为终极级别,不能再被重载,如果定义的是一个类,这个类不能再被继承。如:
    class QRect Q_DECL_FINAL{
    …………………………
    };

  • Q_UNUSED(name)
    这个宏用于函数中定义不在函数里使用的参数,如:
    void MainWindow::on_imageSaved(int id,……)
    {
    Q_UNUSED(id);
    ……………………
    }
    id 未用,用这个宏定义,编译器就不会出现参数未使用警告

  • foreach(variable,container)
    这个foreach(variable,container)用于容器类的遍历,后续章节有讲解

  • forever
    forever用于构建一个无限循环,如:
    forever{
    …………
    }

  • qDebug(const char *message,……)
    在debugger窗体显示信息,如编译器设置了Qt_NO_DEBUG_OUTPUT,则不作任何输出,如:
    qDebug("……")

类似的宏还有qWarning、qCritical、qFatal、qInfo等,也是用于debugger窗体显示信息。

Qt入门学习之Qt全局定义相关推荐

  1. Qt入门学习——Qt Creator的使用

    Qt Creator介绍 通过前面<Qt快速入门(vim纯代码编写)>的学习得知,只有搭建好了 Qt 环境(Qt库和开发工具),即可通过 vim 纯代码编写 Qt 程序,再借助 Qt 里的 ...

  2. opic4:Qt入门之常用qt控件认知之Button系列

    opic4:Qt入门之常用qt控件认知之Button系列 2013-06-27 18:21:54 标签:QAbstractButton QPushButton QRadioButton 原创作品,允许 ...

  3. 树莓派python界面qt_树莓派QT入门教程——使用Qt开发界面程序控制GPIO

    树莓派QT入门教程--使用Qt开发界面程序控制GPIO 玩转树莓派2017-07-12 12:36 树莓派入门教程--使用Qt开发界面程序 前言 Qt是一个1991年由奇趣科技开发的跨平台C++图形用 ...

  4. 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解

    一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...

  5. QT入门学习之UI文件设计与运行机制

    在Qt Creatrer中新建一个Qt Widget Application项目demo1,其基类选择QWidget作为窗体基类,并选择"Generrate form"复选框,让其 ...

  6. Qt入门之常用qt控件认知之QLabel

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hongbin0720.blog.51cto.com/3305400/123043 ...

  7. 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  8. 第15.22节 PyQt(Python+Qt)入门学习:Model/View架构详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关 ...

  9. 第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  10. QT入门学习之软件程序开发初体验

    使用Qt Creater软件编写一个"Hello World"程序,初步了解Qt Creater设计应用程序的基本过程. 1. 新建一个项目过程 1)打开Qt Creater软件, ...

最新文章

  1. 三菱gs触摸屏进入设定菜单_三菱触摸屏常用功能设置 以及界面调整
  2. linux xampp eclipse xdebug 无法进入断点
  3. JavaScript 教程(二)
  4. 【4】 Java基础 四
  5. MySQL非等值连接
  6. 循环神经网络(RNN)相关知识
  7. LeetCode 542 01 矩阵
  8. Ansible 入门:安装 简例 playbook应用
  9. Men and women can't be 'just friends
  10. 实现类似黑客帝国的字符流特效屏保
  11. 整流八--电网不平衡状态下三相PWM整流器的控制策略
  12. 计算机网络数据传输率的基本单位是,计算机网络中,数据的传输速度常用的单位是什么...
  13. 快速推导出等比数列的求和公式
  14. Objective-C小白入门:什么是Objective-C
  15. excel导出图片---HSSFWorkbook--SXSSFWorkbook
  16. Kibana数据表格
  17. 1696C. Fishingprince Plays With Array【思维题 + 中间状态 + 优化存储】
  18. html5开发android应用
  19. 支付宝支付回调不成功原因及解决
  20. Vue入门之无法加载文件 C:\Users\xx\npm\vue.ps1,因为在此系统上禁止运行脚本问题解决。

热门文章

  1. 聊聊数字姓氏:这个姓氏真占便宜,被称为最容易夺冠的姓氏!
  2. linux 开发面试---基础题1
  3. 深入浅出 React 和 Redux
  4. qq授权登录。微信授权登录、微博授权登录
  5. 【Excel2019(十五):条件格式与公式】【使用简单的条件格式+定义多重条件的条件格式+使用公式定义条件格式】
  6. chm文件打不开,已取消到该网页的导航
  7. JavaWeb之Servlet技术完全版
  8. markdown图片显示
  9. 笔记本电脑秒便WIFI热点
  10. MapReduce再学习:资源管理框架YARN