- 控制台报
Qt has only been tested with version 10.15 of the platfrom SDK, you're using 13.1. This is an unsupported configuration. You may experience build issues, and by using the 13.1 SDK you are opting in to new feature that Qt has not been prepared for. Please downgrade ths SDK you use to build your app to version 10.15, or configure with CONFIG+=sdk_no_version_check when running qmake to silence this warning
的错误,需要在 .pro 文件中设置
CONFIG += sdk_no_version_check
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.15
- 编译系统: QT 目前支持三种编译系统qmake、Cmake、qbs
- 目前 qmake 使用最多
- 以后 Cmake 取代 qmake
- qbs 市场原因,弃用
- pro 文件中部分内容释义:
QT += core gui #包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # 大于 QT4 版本才包含 widget 模块
TARGET = example_1 # 应用程序名,生成的.exe 程序名
TEMPLATE = app # 模版类型,应用程序模版
DEFINES += QT_DEPRECATED_WARNINGS # 定义编译选项,QT_DEPRECATED_WARNINGS表示当 Qt 的某些功能被标记为过时的,那么编译器会发出警告
SOURCES += \main.app\widget.cpp # 源文件
HEADERS += \widget.h # 头文件
FORMS += \widget.ui #ui 界面
- Qt Creator 的一些快捷键
功能 | 快捷键 | 解释 |
---|---|---|
Switch Header/Source | F4 | 在同名的头文件和源程序文件之间切换 |
Follow Symbol Under Cursor | F2 | 变量:跳转到声明;函数:声明和定义切换 |
Switch Between Function Declartion and Definition | Shift + F2 | 函数:生命和定义切换 |
Refactor/Rename Symbol Under Cursor | Ctrl+Shift+R | 改名称,将替换所有用到这个符号的地方 |
Refactor/Add Definition in .cpp | 为函数原型在 cpp 文件中生成函数体 | |
Auto-indent Selection | Ctrl+I | 为选择的文字自动缩进 |
Toggle Comment Selection | Ctrl+/ | 注释或取消注释 |
Context Help | F1 | 为光标所在的符号显示帮助 |
Save All | Ctrl+Shift +S | 文件全部保存 |
Find/Replace | Ctrl+F | 调出查找/替换对话框 |
Find Next | F3 | 查找下一个 |
Build | Ctrl+B | 编译当前项目 |
Start Debugging | F5 | 开始调试 |
Step Over | F10 | 单步(略过)调试,执行当前语句 |
Step Into | F11 | 单步(跟踪)调试,如果当前行里有函数,就跟踪进入函数 |
Toggle Breakpoint | F9 | 设置或取消当前行的断点 |
- 添加资源文件: 左侧导航栏项目名->右键->add New -> Qt -> Qt Resource File -> 设置名称-> 创建好后在左侧导航栏 Resources 中会有刚创建好的文件->选中创建好的文件->在中间底部窗口Prefix 栏填写前缀->点击中间底部窗口左上角的 Add Files添加文件
Qt 核心特点
- Qt 对标准 C++进行了扩展,引入了一些新的概念和功能. 使用元对象编译器(Meta-Object Compiler, 简称MOC,是一个预处理器)先将 Qt 的特性程序转换成标准的 C++程序,再由标准C++编译器进行编译
- 只有添加了 Q_OBJECT 宏,moc 才能对类里的信号与槽进行预处理
Qt 为 C++语言增加的特性在 Qt Core 模块里实现,由 Qt 的元对象系统实现。包括:信号与槽机制、属性系统、动态类型转换等。 - 元对象系统(Meta-Object System)
- QObject 类是所有使用元对象系统的类的基类
- 在一个类的 private 部分声明 Q_OBJECT 宏
- MOC 为每个 QObject 的子类提供必要的代码
- Qt 全局定义:<QtGlobal>头文件包含了 Qt类库的一些全局定义,包括: 基本数据类型、函数、宏、
-
定义基本数据类型是因为c++ 的数据类型在不同的平台上数据长度是不同, Qt 定的数据类型可以保证在各个平台上数据类型长度是统一的
- qreal 默认是 8 字节 double 类型浮点数,如果 Qt 使用-qreal float 选项进行配置,就是 4 字节 float 类型的浮点数
- qfloat16 是 Qt5.9.0 中新增的一个类,用于表示 16 位的浮点数,要使用 afloat16,需要包含头文件<QFloat16>
- QT_VERSION: 这个宏展开为数值形式 0xMMNNPP(MM=major, NN=minor,PP=patch)表示 Qt 编译器版本,例如 Qt 编译器版本为 Qt5.9.1,则 QT_VERSION 为 0x050901。这个宏常用于条件编译设置,根据不同的 Qt 版本,编译不同的代码段
- QT_VERSION_CHECK: 这个宏展开为 Qt 版本号的一个整数表示句号, 比如 QT_VERSION >= QT_VERSION_CHECK(5,0,0) 表示大于等于 5.0.0 的 qt版本
- QT_VERSION_STR: 这个宏展开为 qt 版本号的字符串
- Q_UNUSED: 对于使用不到的变量或参数可以使用
Q_UNUSED(arg1);
忽略未使用的参数 arg1 的警告