1. 自定义槽
- 槽可以是任何成员函数、普通全局函数、静态函数
- 槽函数和信号的参数和返回值要一致
- 由于信号是没有返回值的, 槽函数也一定没有返回值
首先在mainwidget.h中添加槽函数:
public slots:
void mySlot();
之后在mainwidget.cpp文件中定义槽函数:
void MainWidget::mySlot()
{
b2->setText("^_^");
}
现在, 我们希望当Button2按下时, Button2显示的文本变成笑脸, 就需要将Button2的信号和我们自定义的槽函数连接:
connect(b2, &QPushButton::clicked, this, &MainWidget::mySlot);
保存后运行, 点击Button2就会变成笑脸了:
附录
mainwidget.h
#ifndef MAINWIDGET_H
#define MAINWIDGET_H
#include <QWidget>
#include <QPushButton>
class MainWidget : public QWidget
{
Q_OBJECT
public:
MainWidget(QWidget *parent = 0);
~MainWidget();
public slots:
void mySlot();
private:
QPushButton b1;
QPushButton *b2;
};
#endif // MAINWIDGET_H
mainwidget.cpp
#include "mainwidget.h"
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent)
{
b1.setParent(this);
b1.setText("Close");
b1.move(50, 50);
b2 = new QPushButton(this);
b2->setText("Button2");
b2->move(150, 50);
connect(&b1