Qt概述
- Qt是一个跨平台的C++图形用户界面应用程序框架。
- 优点:
- 跨平台
- 接口简单,容易上手
- 一定程度上简化了内存回收机制
QtCreate创建第一个程序
主函数的解释
#include "mywidget.h"
#include <QApplication> //包含一个应用程序类的头文件
//argc:命令行变量的数量 argv:命令行变量的数组
int main(int argc, char *argv[])
{
//a应用程序对象,在Qt中,应用程序对象有且仅有一个
QApplication a(argc, argv);
//窗口对象 myWidget父类 -> Widget
myWidget w;
//窗口对象默认不会显示,必须要调用show方法显示窗口
w.show();
//让应用程序对象进入消息循环机制中,代码阻塞到当前行
return a.exec();
}
.pro文件的解释
//Qt包含的模块,core核心模块,gui用户图形模块
QT += core gui
//大于4版本以上的Qt包含widget模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
DEFINES += QT_DEPRECATED_WARNINGS
//源文件自动生成
SOURCES += \
main.cpp \
mywidget.cpp
//头文件
HEADERS += \
mywidget.h
快捷键
注释:ctrl + /
运行:ctrl + r
编译:ctrl + b
查找:ctrl + f
整行移动:ctrl + shift + ↑ 或 ↓
帮助文档:Fn + F1, C:\Qt\Qt5.13.2\5.13.2\mingw73_64\bin\assistant.exe
自动对齐:ctrl + i
同名之间的.h 和.cpp切换:Fn + F4
QPushButton创建
The QPushButton widget provides a command button. More...
//控制按钮的头文件
Header:#include <QPushButton>
//包含于widget模块
qmake:QT += widgets
//父类
Inherits:QAbstractButton
//子类
Inherited By:QCommandLinkButton
#include "mywidget.h"
#include <QPushButton>
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
QPushButton * b = new QPushButton();
// b->show(); show以顶层方式弹出窗口控件
//让b对象 依赖在 widget窗口中 void setParent(QWidget *parent);
b->setParent(this);
b->setText("one");
//按钮里面添加文本显示
QPushButton * b2 = new QPushButton("two", this);
//移动按钮
b2->move(100,100);
//按钮重置大小,继承父类的方法
b2->move(30,40);
//设置窗口标题
setWindowTitle("myWindow1");
//重置窗口大小
resize(600, 400);
//设置固定窗口
setFixedSize(600, 400);
}
对象树
- 在Qt创建对象时会提供一个Parent对象指针
- Object是以对象树的形式组织起来的,在创建QObject对象时,可以提供一个其父对象,我们创建的这个QObject对象会自动添加到其父对象的children()列表。
- 当父对象析构时,列表中的对象也被析构(父对象并不是继承意义上的父类)
- QWidget是能够在屏幕上显示一切组件的父类。
- 指定parent对象,一定程度上简化了回收机制
窗口坐标系
- 左上角为0,0点
- x以右为正方向
- y以下为正方向