QT学习第一天,创建工程文件,创建按钮,对象树的概念

本文介绍了如何在Qt中创建新项目、打开项目,以及创建类、窗口和按钮的基本步骤,包括命名规则、文件结构和对象关系管理。重点讲解了main.cpp、widget.cpp和widget.h的代码编写,以及窗口属性设置和控件操作的方法。
摘要由CSDN通过智能技术生成

创建qt

方式一:欢迎》project》new project

方式二:菜单栏》文件》新建文件或项目

打开项目

方式1: 欢迎》project》open project

方式2:打开目录(页面上不存在的项目)

创建工程时需要注意:

1.项目工程名称一般不要有特殊符号,中文

2.默认保存路径不要带中文

3.创建类的基类:带菜单栏的窗口,空白(自己去画窗口),对话框

4.创建类的类名,首字母要大写

5.首创不用UI(界面)

3月23日下午4.56我创建了我第一个qt项目文件

创建并编译完成啦!

在这里插入图片描述

qt项目框架以及文件的介绍

main.cpp

#include "widget.h" //QT中一个类对应一个头文件,类名就是头文件名

#include <QApplication> //QT系统提供的标准类名声明头文件

int main(int argc, char *argv[]) //应用程序类(整个后台管理的命脉,管理程序的初始化和结束,事件处理以及调动,注意不管有多少个窗口,一个QApplication类就可以了)
{
    QApplication a(argc, argv);
    Widget w;//实例化对象,调用构造函数
    w.show();//显示图形界面
    return a.exec();//主事件循环,在exec函数中,qt接受并处理用户和系统的时间并且将他们传递适当的窗口控件
}

widget.cpp

#include "widget.h"
#include "./ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

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

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

代码书写位置

.pro用于生成可执行文件的

main.cpp主函数

widget.cpp类的函数

​ 一般情况下,窗口的属性和添加控件和对控件的操作都会在类的构造函数中写

​ 优点:可以让程序中无多余的代码,程序阅读也方便

widget.cpp类和头文件

确定使用

assistant 帮助手册

在这里插入图片描述

在这里插入图片描述

或者点击左侧栏的帮助

在这里插入图片描述

注意:如果函数在类中未找到,可以去基类去查找

设置窗口属性

// 修改窗口的标题(第一个窗口)
this->setWindowTitle("first");
// 设置窗口大小
this->resize(600,400);
// 设置固定大小,设置完成不可拉伸
this->setFixedSize(500,500);

解决中文乱码(注意:改完之后重新新建工程才可以有效果)
在这里插入图片描述

在这里插入图片描述

按钮的添加

步骤1:要包含头文件(.)

#include <QPushButton>
 QT += widgets

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

    // 创建按钮  ctrl + i 代码自动对齐
    QPushButton *button=new QPushButton;
    button->show(); // 显示按钮,此时会重新开一个窗口
    // 设置按钮的父对象为窗口,为了让button在原来的窗口上显示
    button->setParent(this);

在这里插入图片描述

按钮的属性设置

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

第二种创建按钮的方式

// 创建按钮方式二
QPushButton *button2=new QPushButton("第二个按钮",this);
this->resize(600,400); // 重置窗口的大小

区别:

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

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

对象模型(对象树)

概念:qt对象间的父子关系

作用:在一定程度上解决啦内存的问题,简化内存回收

注意:在qt中, 尽量在构造的时候就指定parent对象,并且大胆在堆上创建

// 该段代码无问题:因为栈一般先构造函数后析构,
// 下面程序是先析构button,同时将button从window的子对象列表删除,
// 然后析构window, 仅析构window(window无子对象)
QWidget window;
QpushButton button = QPushButton("退出", ¥window);
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值