C++ | 通过QPushButton学习Qt基本语法 [ 对象树、自定义信号和槽 ]

本文详细介绍Qt中QPushButton的创建方法及自定义信号和槽的实现方式,包括按钮的三种创建方式、对象树概念解析、信号和槽的基础及进阶应用。

目录

一、创建QPushButton

1.方法一:

2.方法二:按照按钮的大小创建窗口。

3.方法三:继承QPushButton类,自定义 MyQPushBtn类。

扩展:对象树 

二、自定义信号和槽

1.无参信号和槽

a.信号

b.槽

c.信号和槽的关系

2.关联无参信号和槽 

3.信号和槽的重载

4.关联有重载的信号和槽

5.信号和槽、信号和信号的断开


一、创建QPushButton

1.方法一:

QPushButton *btn=new QPushButton;
//   btn->show();//以顶层的方式单独弹出窗口控件
btn->setParent(this);
btn->setText("第一个按钮");
btn->move(0,100);

2.方法二:按照按钮的大小创建窗口。

QPushButton *btn2=new QPushButton("第二个按钮",this);

搭配使用->重置窗口大小:

    //重置窗口大小
    this->resize (600,400);
    //移动位置
    btn2->move(100,100);

扩展:

    //设置固定窗口大小,不可拖拽
    this->setFixedSize(600,400);
    //设置窗口标题
    setWindowTitle("QPushBtn Study");

3.方法三:继承QPushButton类,自定义 MyQPushBtn类。

//myqpushbtn.h

#ifndef MYQPUSHBTN_H
#define MYQPUSHBTN_H

#include <QPushButton>
#include <QDebug>
class MyQPushBtn : public QPushButton
{
    Q_OBJECT //Q_OBJECT宏,允许类中使用信号和槽机制
public:
    explicit MyQPushBtn(QWidget *parent = nullptr);
    ~MyQPushBtn();
signals:

};

#endif // MYQPUSHBTN_H
//myqpushbtn.cpp

#include "myqpushbtn.h"

MyQPushBtn::MyQPushBtn(QWidget *parent) : QPushButton(parent)
{

}

MyQPushBtn::~MyQPushBtn()
{
    qDebug()<<"~MyQPushBtn";
}

 MyQPushBtn的使用:

#include "widget.h"
Widget::Widget(QWidget *parent): QWidget(parent)
{
    MyQPushBtn *btn3=new MyQPushBtn(this);
    btn3->setText("第三个按钮");
    btn3->move(200,100);
}
Widget::~Widget()
{
    qDebug()<<"~Widget";
}

扩展:对象树 

更多细节:https://zhuanlan.zhihu.com/p/43523879

QObject是QT中所有类的基类(所以QObject是QWidget的基类),QWidget是所有UI Widget类的基类。

//QObject

typedef QList<QObject*> QObjectList;
inline const QObjectList &chi
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

烫青菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值