Qt是一个跨平台的C++图形用户界面引用程序框架。它是完全面向对象,很容易扩展,允许组件编程。
1. 历史
1.1 1991 奇趣科技开发
2. 优点
2.1 跨平台
2.2 效率高,能够快速构建应用程序
2.3 接口简单,容易学习
2.4 一定程度上简化了内存回收机制。[需要加到children表中]
2.5 可进行嵌入式开发
2.6 市场份额好
3. 成功案例
3.1 Linux桌面环境KDE
3.2 wps
3.3 谷歌地图
3.4 屏幕共享
3.5 VLC
4. .Pro文件
#-------------------------------------------------
#
# Project created by QtCreator 2019-06-25T20:31:48
#
#-------------------------------------------------
QT += core gui // QT包含的模块 4版本以上包含widget模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets // 大于4版本,包含widget模块
TARGET = test_01 // 生成的.exe可执行文件的名称。 后期可以在此更改可执行文件的名称
TEMPLATE = app // 模板:应用程序模板
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11
SOURCES += \
main.cpp \
mywidget.cpp // 源文件
HEADERS += \
mywidget.h
5. Main函数
#include "mywidget.h"
#include <QApplication> // 包含头文件 应用程序
// 程序入口
int main(int argc, char *argv[])
{
// 应用程序对象a; Qt中有且只有一个
QApplication a(argc, argv);
// 创建 MyWidget对象 w MyWidget 基类:QWidget
MyWidget w;
// 窗口默认不会弹出,若想弹出 调用show方法
w.show();
// a.exec() 进入消息循环机制 pause
return a.exec(); // 阻塞功能 -- 死循环
/*
类似于:
while(1){
if(点击x号关闭窗口){
break;
}
}
*/
}
5.1 QApplication a 应用程序对象 有且仅有一个
5.2 a.exec() 进行消息循环 阻塞
5.3 MyWidget w 窗口对象
5.4 默认不会弹出窗口,想要显示窗口,需要调用show
6. QPushButton
// 按钮
QPushButton* btn = new QPushButton;
// btn->show(); // 用顶层方式弹出。若想在MyWiget窗口中显示,就需要依赖MyWidget窗口
// 设置父亲
btn->setParent(this);
// 设置文字
btn->setText("Nemo");// 将char*隐式类型转化为QString
// 重置按钮大小
btn->resize(150 ,100);
// 创建按钮第二种方式
QPushButton* btn2 = new QPushButton("第二按钮", this); //此方式可以安装btn2大小进行显示
// 重置窗口大小
this->resize(400, 200);// 宽 高
// 后创建,显示靠前
// 移动第二个按钮
btn2->move(100, 100);
// 重置窗口标题
setWindowTitle("xxx---xxx");
// 设置窗口大小
setFixedSize(800, 600);
执行结果:
7. 对象树
7.1 所有new出来的对象,不用管释放
7.2 因为children表(对象树)中的对象会在窗口关闭后进行自动释放。
8. Qt中的坐标系