QT学习笔记3

不使用UI文件编程

以按钮使用为例
设置按钮的文本
设置按钮的位置
设置按钮的大小
设置主窗口大小

用代码的方式设置按钮,进行编程

mainwindow.cpp

#include "mainwindow.h"
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //    pushButton = new QPushButton();
    //    pushButton->show();//这种做法按键与窗口不关联
    pushButton = new QPushButton(this);        // 这种做法按键与窗口关联,父对象调用了show,可以继承父类可见
    pushButton->setText("我是个按钮");
    pushButton->setGeometry(50, 150, 100, 50); // 设置按钮大小和位置
    this->resize(800, 400);                    // 设置窗口大小
}

MainWindow::~MainWindow()
{}


mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>

class MainWindow : public QMainWindow {
    Q_OBJECT

public:

    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    QPushButton *pushButton;
};
#endif // MAINWINDOW_H

Qt中Object Tree

■为什么需要设置父对象
■如何设置父对象(两种方法)

myWidget.h文件

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>

class MyWidget : public QWidget {
    Q_OBJECT

public:

    explicit MyWidget(QWidget *parent = nullptr);
    ~MyWidget(); // 声明析构函数

signals:
};

#endif // MYWIDGET_H


myWidget.cpp文件

#include "mywidget.h"
#include <QDebug>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{}

MyWidget::~MyWidget()
{
    qDebug() << "MyWidget析构函数" << endl;
}

widget.cpp文件

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    // 为什么需要设置父对象,因为窗口需要互相联系,比如A需要显示在B上面,A需要指定B为父关系
    //    pushButton = new QPushButton(this);
    //    pushButton = new QPushButton();
    //    pushButton->show();
    // 设置父对象的两种方法
    // 1.通过构造函数传参
    // 2.通过setParent()方法
    pushButton = new QPushButton();
    pushButton->setParent(this);

    //    myWidget = new MyWidget();
    myWidget = new MyWidget(this);
    //Qt 的对象树机制目的是为了方便管理内存
    //    delete myWidget;//在这里或者在窗口析构函数中
}

Widget::~Widget()
{
    //    delete myWidget; // 在这里或者在窗口析构函数中
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值