[QT开发 04_按钮的创建和属性设置]

本文介绍了在Qt中创建第一个按钮,包括包含头文件、模块选择、按钮属性设置、不同创建方式的区别,以及对象树和窗口坐标体系的概念。特别强调了对象生命周期管理和避免内存问题的重要性。
摘要由CSDN通过智能技术生成
QT       += core gui    //如果Qt版本不是大于4的,只需要包含这一条语句就行了
//QT4及以前的版本widgets模块是包含与gui模块当中,如果是版本大于4,重新包含widgets,因为在Qt4之后,widgets分出来了,需要重新包含
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  

知识点1:创建第一个按钮

步骤1:包含头文件(在.cpp文件中)及模块(在.pro文件中)

#include <QApplication>    //所要包含的头文件
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets   //所要添加的模块

步骤2:调用类的构造函数创建按钮

QPushButton *button =new QPushButton;

步骤3:显示按钮

//显示方式是另外开一个窗口显示按钮

button->show();

//设置按钮的父对象为窗口,这样按钮就在窗口上显示

button->setParent(this);

知识点2:按钮的属性设置

//设置按钮的内容
button->setText("第一个按钮");
//设置按钮的显示位置
button->move(100,100);
//设置按钮的大小
button->setFixedSize(400,400);

知识点3:创建按钮的其他方式及两种创建按钮的区别

  QPushButton *button2 = new QPushButton("第二个按钮",this);//创建按钮的第二种方式
  this->resize(600,400);

区别:

方式1:窗口默认大小,按钮显示在左上角

方式2:窗口是根据按钮的大小来创建的

知识点4:对象树(对象模型)

概念:Qt对象间父子关系。

解决问题:在一定程度上解决了内存问题,简化内存回收。

举例:

        自定义按钮类继承QPushButton,实例化自定义按钮类,并将其添加窗口类,实现构造与析构,然后关闭窗口,看析构函数是否自动执行。(在Qt中,尽量在构造的时候就指定parent对象,并且大胆在堆上创建。

该段代码无问题:因为栈一般先构造的后析构,
下面程序是先析构button,同时将button从window的子对象列表删除,
然后析构window,仅析构window(window无对象)

QWidget window;
QPushButton quit = QPushButton ("退出", &window);

该段代码有问题:因为栈一般是先构造的后析构,导致重复析构,程序崩溃。
下边程序是先析构window,析构window及window子对象(quit),然后析构quit
QPushButton quit("Quit");    
QWidget window;
quit.setParent(&window);     

正序入栈倒序出栈,正序构造倒叙析构。

创建完对象执行完无参构造后,会自动调用析构函数。

知识点5:QT窗口坐标体系

注意:对于嵌套窗口,其坐标是相对与父坐标来说的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值