qt creator 信号和槽
黑马程序员Qt(第一部分)
https://www.bilibili.com/video/BV1XW411x7NU?p=8
mainwidget.cpp
#include "mainwidget.h"
#include <QPushButton>
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent)
{
b1.setParent(this);
b1.setText("^_^");
b1.move(100, 100);
b2 = new QPushButton(this);
b2->setText("ABC");
}
MainWidget::~MainWidget()
{
}
mainwidget.h
#ifndef MAINWIDGET_H
#define MAINWIDGET_H
#include <QWidget>
#include <QPushButton>
class MainWidget : public QWidget
{
Q_OBJECT
public:
MainWidget(QWidget *parent = 0);
~MainWidget();
private:
QPushButton b1 ;
QPushButton *b2 ;
};
#endif // MAINWIDGET_H
切换 .h 和.cpp 按F4 快捷键
ctrl+r 是运行
从帮助文档 返回源码 ESC按钮
标准信号和槽
connect()函数最常用的一般形式:
connect(sender, signal, receiver, slot);
参数:
sender:发出信号的对象
signal:发送对象发出的信号
receiver:接收信号的对象
slot:接收对象在接收到信号之后所需要调用的函数
代码:mainwidget.cpp
#include "mainwidget.h"
#include <QPushButton>
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent)
{
b1.setParent(this);
b1.setText("^_^");
b1.move(100, 100);
b2 = new QPushButton(this);
b2->setText("ABC");
connect(&b1,&QPushButton::pressed,this,&MainWidget::close);
/*
* &b1 : 信号发出者,指针类型
* &QPushButton::pressed 处理的信号
* this 信号接收者
* &MainWidget::close 槽函数
*/
}
MainWidget::~MainWidget()
{
}
自定义 槽函数
public:
void mySlot();
connect(b2,&QPushButton::released,this,&MainWidget::mySlot);
connect(b2,&QPushButton::pressed,&b1,&QPushButton::hide);
void MainWidget::mySlot()
{
qDebug() <<"myslot ";
b2->setText("123");
}