文章目录
- 一、关于 QT
- 1.2 Qt的发展史
- 1.3支持的平台
- 1.4 Qt版本
- 1.5 Qt 的优点
- 1.6 成功案例
- 二、软件安装
- 1、保证已 Xcode 和 Command Line Tools
- 2、下载 QT
- 3、下载 [qtcreator](http://download.qt.io/official_releases/qtcreator/)
- 查看qt版本
- 三、创建工程
- Qt 常见用法
- 四、基础项目文件
- `main.cpp` 文件
- `.pro`文件
- `mywidget.h`
- 快捷键
一、关于 QT
- Qt for macOS
https://doc.qt.io/qt-5/macos.html
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
1.2 Qt的发展史
- 1991年 Qt最早由奇趣科技开发
- 1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
- 2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
- 2012年 Qt又被Digia公司收购
- 2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。
1.3支持的平台
- Windows – XP、Vista、Win7、Win8、Win2008、Win10
- Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台
- Macintosh – Mac OS X
- Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE
1.4 Qt版本
Qt按照不同的版本发行,分为商业版和开源版
- 商业版
为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。 - 开源的LGPL版本:
为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。
1.5 Qt 的优点
- 跨平台,几乎支持所有的平台
- 接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
- 一定程度上简化了内存回收机制
- 开发效率高,能够快速的构建应用程序。
- 有很好的社区氛围,市场份额在缓慢上升。
- 可以进行嵌入式开发。
1.6 成功案例
- Linux桌面环境KDE
- WPS Office 办公软件
- Skype 网络电话
- Google Earth 谷歌地图
- VLC多媒体播放器
- VirtualBox虚拟机软件
二、软件安装
1、保证已 Xcode 和 Command Line Tools
安装完毕后,Clang就有了
https://developer.apple.com/downloads/
2、下载 QT
https://www.qt.io/download-qt-installer
拖至页尾
我下载的安装包名为 qt-unified-mac-x64-4.0.1-1-online.dmg
从以下路径进入也可以下载到同样的安装包:
https://www.qt.io/download-open-source
https://download.qt.io 所有下载包
Windows 推荐使用 MinGW 版本(好过VS版本),MinGW 默认编码格式为 utf-8。
3、下载 qtcreator
下载地址:http://download.qt.io/official_releases/qtcreator/
查看qt版本
~/packages/Qt5.14.2/5.14.2/clang_64/bin/qmake
/usr/local/Cellar/qt/5.14.2/mkspecs/macx-xcode
三、创建工程
1、打开 qt creator app
2、创建工程
项目名不能有空格或中文
Base class 有 QWidget、QMainWindow 和 QDialog 可选。这里我们选择 QWidget 。
QWidget 是 QMainWindow 和 QDialog 的父类;是最简单的窗口;
QMainWindow 会有上方的菜单栏,下方的状态栏等;
QDialog 对话框。
不设置版本控制
得到这样的目录结构
https://blog.yowko.com/no-valid-kits-found-on-mac/
Qt 常见用法
1、可以点击 简化树形视图
来不区分 .h 和 .cpp 文件。
2、分栏
点击分栏
是上下分栏效果;可以点击 左右分栏
。
四、基础项目文件
https://www.bilibili.com/video/BV1g4411H78N?p=5
main.cpp
文件
#include "mywidget.h"
#include <QApplication>// 包含一个应用程序类的头文件
//main程序入口 argc命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{
//a应用程序对象,在Qt中,应用程序对象 有且仅有一个
QApplication a(argc, argv);
//窗口对象 myWidget父类 -> QWidget
myWidget w;
//窗口对象 默认不会显示,必须要调用show方法显示窗口
w.show();
//让应用程序对象进入消息循环
//当代码阻塞到这行
return a.exec();
// a.exac() 相当于下述代码
// while(true)
// {
// if(点击叉子)
// {
// break;
// }
// }
}
.pro
文件
这个文件最好不要添加任何内容,包括注释。这里添加注释方便解读:
#-------------------------------------------------
#
# Project created by QtCreator 2018-01-05T09:31:24
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets // 大于4版本以上,包含 widget 模块
TARGET = 01_FirstProject // 目标,也是生成 .exe 程序的名称
TEMPLATE = app // 模板,app 为应用程序模板;还有 lib, vcapp 等。
SOURCES += main.cpp\ // 源文件,会自动追加
mywidget.cpp \
mypushbutton.cpp
HEADERS += mywidget.h \ // 头文件
mypushbutton.h
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget> //包含头文件 QWidget 窗口类
class myWidget : public QWidget
{
Q_OBJECT // Q_OBJECT宏,允许类中使用信号和槽的机制
public:
myWidget(QWidget *parent = 0); //构造函数
~myWidget(); //析构函数
};
#endif // MYWIDGET_H
快捷键
- 注释 ctrl + /
- 运行 ctrl + r
- 编译 ctrl + b
- 字体缩放 ctrl + 鼠标滚轮
- 查找 ctrl + f
- 整行移动 ctrl + shift + ↑ 或者↓
- 自动对齐 ctrl + i;
- 同名之间的.h 和 .cpp切换 F4
- 查看帮助文档:第一种方式 F1,第二种 左侧按钮, 第三种 C:\Qt\Qt5.6.0\5.6\mingw49_32\bin
2021-02-04