Qt入门学习之Qt全局定义
头文件包含了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
………………………………
#endifQT_VERSION_CHECK------这个宏展开为Qt版本号的一个整数表示
#if(QT_VERSION>=QT_VERSION_CHECK(5.0.0))
………………………………
#else
………………………………
#endifQT_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
………………………………
#endifQ_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全局定义相关推荐
- Qt入门学习——Qt Creator的使用
Qt Creator介绍 通过前面<Qt快速入门(vim纯代码编写)>的学习得知,只有搭建好了 Qt 环境(Qt库和开发工具),即可通过 vim 纯代码编写 Qt 程序,再借助 Qt 里的 ...
- opic4:Qt入门之常用qt控件认知之Button系列
opic4:Qt入门之常用qt控件认知之Button系列 2013-06-27 18:21:54 标签:QAbstractButton QPushButton QRadioButton 原创作品,允许 ...
- 树莓派python界面qt_树莓派QT入门教程——使用Qt开发界面程序控制GPIO
树莓派QT入门教程--使用Qt开发界面程序控制GPIO 玩转树莓派2017-07-12 12:36 树莓派入门教程--使用Qt开发界面程序 前言 Qt是一个1991年由奇趣科技开发的跨平台C++图形用 ...
- 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...
- QT入门学习之UI文件设计与运行机制
在Qt Creatrer中新建一个Qt Widget Application项目demo1,其基类选择QWidget作为窗体基类,并选择"Generrate form"复选框,让其 ...
- Qt入门之常用qt控件认知之QLabel
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hongbin0720.blog.51cto.com/3305400/123043 ...
- 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...
- 第15.22节 PyQt(Python+Qt)入门学习:Model/View架构详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关 ...
- 第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...
- QT入门学习之软件程序开发初体验
使用Qt Creater软件编写一个"Hello World"程序,初步了解Qt Creater设计应用程序的基本过程. 1. 新建一个项目过程 1)打开Qt Creater软件, ...
最新文章
- 三菱gs触摸屏进入设定菜单_三菱触摸屏常用功能设置 以及界面调整
- linux xampp eclipse xdebug 无法进入断点
- JavaScript 教程(二)
- 【4】 Java基础 四
- MySQL非等值连接
- 循环神经网络(RNN)相关知识
- LeetCode 542 01 矩阵
- Ansible 入门:安装 简例 playbook应用
- Men and women can't be 'just friends
- 实现类似黑客帝国的字符流特效屏保
- 整流八--电网不平衡状态下三相PWM整流器的控制策略
- 计算机网络数据传输率的基本单位是,计算机网络中,数据的传输速度常用的单位是什么...
- 快速推导出等比数列的求和公式
- Objective-C小白入门:什么是Objective-C
- excel导出图片---HSSFWorkbook--SXSSFWorkbook
- Kibana数据表格
- 1696C. Fishingprince Plays With Array【思维题 + 中间状态 + 优化存储】
- html5开发android应用
- 支付宝支付回调不成功原因及解决
- Vue入门之无法加载文件 C:\Users\xx\npm\vue.ps1,因为在此系统上禁止运行脚本问题解决。