Qt学习笔记(二):信号和槽


一、创建一个基于 QWidget 的项目,不带有界面设计器:

二、在主窗口下添加两个按钮对象,连接按钮发出的信号和槽函数:

mywidget.h:

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>

// 引入按钮头文件
#include <QPushButton>

class MyWidget : public QWidget
{
    Q_OBJECT
    
public:
    MyWidget(QWidget *parent = 0);
    ~MyWidget();
    
private:
    // 声明两个按钮对象
    QPushButton b1;  // 普通对象
    QPushButton *b2; // 指针对象
};

#endif // MYWIDGET_H

mywidget.cpp:

#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    // 通过 setParent 方法指定父对象
    b1.setParent(this);
    b1.setText("Button1");
    b1.resize(80, 40);
    b1.move(200, 100);
    
    // 通过构造函数方法指定父对象
    b2 = new QPushButton(this);
    b2->setText("Button2");
    b2->resize(80, 40);
    b2->move(30, 20);
    
    /*
     * 连接信号和槽:点击按钮的时候,关闭当前窗口
     * 参数1:信号的发送者(指针类型)
     * 参数2:发送的信号;&发送者的名字::信号名称
     * 参数3:信号的接收者(指针类型)
     * 参数4:处理信号的函数(叫做槽函数);&接收者的名字::槽函数名称
     */
    connect(&b1, &QPushButton::clicked, this, &MyWidget::close);
    
    // 连接信号和槽:按下按钮的时候,当前窗口最大化显示
    connect(b2, &QPushButton::pressed, this, &MyWidget::showMaximized);
    
    // 重置主窗口的大小
    this->resize(600, 400);
}

MyWidget::~MyWidget()
{
    
}

其中信号 &QPushButton::clicked、&QPushButton::pressed,

和槽函数 &MyWidget::close、&MyWidget::showMaximized 都是 Qt 定义好的;

可以在 Qt 帮助文档里查找:</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值