QT
-
概述:
什么是QT:一个跨平台的C++图形用户界面应用程序框架1)支持的平台:
Windows - XP、Vista. Win7、Win8、 Win2008、Win10Uinux/X11 - Linux、Sun Solaris…
Macintosh -Mac OS X
Embedded -有帧缓存支持的嵌入式Linux平台、Windows CE
2)优点:
跨平台,几乎支持所有的平台。
接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
一定程度上简化了内存回收机制。
开发效率高,能够快速的构建应用程序。
有很好的社区氛围,市场份额在缓慢上升。
可以进行嵌入式开发。
3)成功案例:
Linux桌面环境 KDE
WPS Office 办公软件
Skype 网络电话
Google Earth 谷歌地图
VLC 多媒体播放器
VirtualBox 虚拟机软件
-
创建第一个项目
a. 点击新建
b. 项目名称 --不能有中文路径 不能有空格
c. 项目路径 --不能有中文路径
d. 第一个窗口类起名称
i. 默认的三个基类 QWidget QMainWindow QDialog
e. 默认创建的文件
i. .pro ii. main.cpp iii. widget.h iv. widget.cpp
f. 文件解释
i. .pro文件解释 QT += core gui //包含的模块 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //4版本以上加入 widgets 模块 TARGET = 01_Qt_First //目标 生成的.exe程序的名称 TEMPLATE = app //模板 Application 应用程序 DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ //源文件 main.cpp \ widget.cpp HEADERS += \ //头文件 widget.h ii. main #include "widget.h" //包含创建的类的头文件 #include <QApplication> //应用程序类 //main 程序入口 //argc 命令行变量的数量 argv 命令行变量数组 int main(int argc, char *argv[]) { QApplication a(argc, argv); //a 应用程序对象 ,QT中有且仅有一个应用程序对象 Widget w; //创建一个自定义窗口对象 w.show(); //窗口对象 默认是不会弹出的 需要调用show函数 进行显示 return a.exec(); //a.exec()进入消息循环机制 阻塞代码 } iii. widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> //QWidget是当前基类 class Widget : public QWidget { Q_OBJECT //Q_OBJECT 提供QT中的信号和槽的机制 public: Widget(QWidget *parent = 0); ~Widget(); }; #endif // WIDGET_H iv. widget.cpp #include "widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) { } Widget::~Widget() { }
-
关于安装时kits的详解(可以理解为编译工具)
https://blog.csdn.net/yiminghd2861/article/details/89137754
-
基本知识
命名规范
类名首字母大写,单词和单词之间首字母大写 函数名、变量名称----首字母小写单词和单词之间 首字母大写
常用快捷键
运行 ctrl + R 编译 ctrl+B 帮助文档 F1 注释 ctrl + / 字体缩放 ctrl +鼠标滚轮 整行代码移动 ctrl +shift+ ↑或者↓ 查找 ctrl + f 自动对齐 ctrl + i 同名之间的.h和. cpp切换 ctrl + F4 帮助文档 F1 左侧列表 F:\QT\Qt5.9.0\5.9\mingw53_32\bin
-
基本控件接口
QPushButton *btn2 = new QPushButton(“猪八戒”); //按钮对象
// btn2->show(); //如果是show函数 默认是用顶层方式弹出窗口
btn2->setParent(this); //设置父窗口
btn1->setText(“孙悟空”); //显示文本
btn2->move(100,100); //移动按钮
this->resize(600,400); //设置窗口大小
this->setWindowTitle(“第一个项目”); //设置窗口标题
this->setFixedSize(600,400); //设置固定窗口尺寸
-
对象树
在创建对象时候,如果父类是QObject或者QObject派生的类,,这个对象可以不用去管理释放,会放到一个对象树上,析构会自动管理对象的释放。