Qt自学笔记(一)

1.Qt项目构建

.pro文件间接

  • QT += gui core

  QT:代表引入QT的模块
  gui       界面
  core  核心
  ```

- TARGET = test

```cpp
  TARGET:代表生成的可执行文件的名称xxx.exe
  test:生成test.exe
  ```

- TEMPLATE = app

```cpp
  TEMPLATE:模板(项目的结构)
  app:application应用程序
  ```

- SOURCE += main.cpp\

```cpp
  SOURCE:源代码(自动生成的)
  ```

- INCLUDE = C:/boost/include

```cpp
  INCLUDE:引入的外部库
  ```

- HEADER += xxx.h\

```cpp
  HEADER:头文件
  ```

# 2.新建QT项目详解

## 2.1 Main函数

```cpp
#include "widget.h"        //创建项目时,基类为QWidget生成的自定义widget类
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);     //QApplication a应用程序对象 有且仅有一个
    Widget w;                       //使用自定义widget类,创建对象w
    w.show();                       //w.show()以后才会展示界面(默认隐藏)
    return a.exec();                //a.exec() 进行消息循环 阻塞
}

2.2 自定义widget类

2.2.1 widget.h

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>

class Widget : public QWidget           //继承自QWidget
{
    Q_OBJECT                            //Q_OBJECT是QT中定义的宏

public:
    Widget(QWidget *parent = nullptr);  //构造函数,参数是一个指针(父类对象的指针),默认参数为空
    ~Widget();
};
#endif // WIDGET_H

  • Q_OBJECT:这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。因此,如果你觉得你的类不需要使用信号槽,就不添加这个宏,就是错误的。其它很多操作都会依赖于这个宏。

2.2.2 widget.cpp

#include "widget.h"
Widget::Widget(QWidget *parent)
    : QWidget(parent)           //显示调用父类的构造函数
{
}

Widget::~Widget()
{
}

3.QT的继承关系

3.1 三大界面基类

QMainWindow

QWidget

QDialog

3.2 对象树

只有继承了QObject或其子类才能够被加入到QT的对象树中

3.2.1 加入对象树的作用

所有new出来的对象,加入到了对象树中。我们就不用管它的释放了

在对象树释放是,从叶子节点(最底层的节点)开始一层一层的释放。(确保了堆上的空间只被释放一次)

构建顺序相反,先构建QObject,然后一层一层的向下构建(添加到对象树中)

3.2.2 如何添加到对象树中

  1. 在new时,通过构造函数传入参数this/或父类对象的指针
  2. 对象指针->setParent(this/父类对象的指针);

4.Qt中的坐标系

以左上角为(0,0)

x正向 →

y正向 ↓

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值