Qt学习笔记

1.三个基类简单理解

QWidget  父类(最简单的窗口)    

QMainwindow  子类(多了菜单栏状态栏等功能)

QDialog  子类(对话框)

头文件(.h)与源文件(.cpp)的区别

2.头文件(.h)

头文件用来写类的声明、函数原型、#define常数等等,很少会写出具体的实现和细节。就好比抽象类一样。

作用是防止源文件被重复引用

//开头
//=if not define myQPushBotton
//如果引用头文件的源文件没有myQPushBotton,那么引入myQPushBotton
#ifndef MYQPUSHBOTTON_H
#define MYQPUSHBOTTON_H
//结尾
#endif

3.Qt头文件模板

class myWidget : public QWidget//继承
{
    Q_OBJECT//宏,允许类中使用信号的槽的机制

public:
    myWidget(QWidget *parent = nullptr);//有参构造函数,nullptr(0)为默认值
    ~myWidget();

private:
    Ui::myWidget *ui;
};

4.源文件模板

(1)main文件(程序入口)

#include "mywidget.h"

#include <QApplication>// 包含一个应用程序的头文件

//argc:命令行变量的数量 argv:命令行变量的数组
int main(int argc, char *argv[])
{
    //a:应用程序对象,有且只有一个
    QApplication a(argc, argv);
    //myWidget:窗口对象 父类->QWidget
    myWidget w;
    w.show();
    //让a加入消息循环(机制,不会让程序一闪而过)  让代码阻塞到这一行后面代码不执行
    return a.exec();
}

(2)myWidget文件(我的窗口)

    第一个程序

#include "mywidget.h"
#include "ui_mywidget.h"
#include<QPushButton>

myWidget::myWidget(QWidget *parent)//(::)成员函数所属的类,后者是成员函数
    : QWidget(parent)
    , ui(new Ui::myWidget)//初始化列表
{
    ui->setupUi(this);//.ui文件生成的类的构造函数,对界面进行初始化

    //设置第一个按钮
    QPushButton*btn=new QPushButton;
    btn->show ();//以顶层的方式弹出窗口
    //让btn对象依附在myWidget窗口中
    btn->setParent(this);//this指向当前对象myWidget的指针
    btn->setText("The first");
    btn->move(0,0);

}

myWidget::~myWidget()
{
    delete ui;
}

  第二种方法设置按钮


    //添加第二个按钮
    QPushButton*btn2=new QPushButton("The second",this);
    //移动第二个按钮
    btn2->move(100,0);

    //重置窗口大小
    resize(800,500);

    //设置窗口名字
    setWindowTitle("第一个窗口");

    //设置固定窗口大小
    setFixedSize(800,500);

 5.对象树

  • Qt提供了对象树机制,能够自动、有效的组织和管理继承自QObject的Qt对象。
  • 每个继承自QObject类的对象通过它的对象链表(QObjectList)来管理子类对象,当用户创建一个子对象时,其对象链表相应更新子类对象信息,对象链表可通过children()获取。
  • 当父对象析构的时候,其对象链表中的所有(子)对象也会被析构,父对象会自动将其从父对象列表中删除。Qt 保证没有对象会被 delete 两次。开发中手动回收资源时建议使用deleteLater代替delete,因deleteLater多次是安全的,而delete多次是不安全的

     对象树原文链接:https://blog.youkuaiyun.com/qq_34606496/article/details/123605139

 如何构造一个对象树

Qt学习记录(4)——对象树_永不秃头的程序员的博客-优快云博客

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rubber树

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值