一、QT自定义槽函数
要点
- 槽函数可以是任意的类成员函数、全局函数、静态函数、lambda表达式(隐式函数)
- 槽函数需要与信号相对应(返回值,函数)
- 信号没有返回值,槽函数可以有返回值
举例
void my_sig(int, double, QString);//信号
void my_slot(int, double, QString);//槽函数
- 槽函数的参数是为了接收信号传过来的数据
- 槽函数的参数个是不能大于信号的参数个数,但是可以少于信号的参数个数
- 槽函数可以重载
- 槽函数创建需要在.h文件->
public
->声明函数名
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void slotForMainWidget();
使用举例
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建按键1
b1 = new QPushButton;
b1->setText("我是按键1");
b1->move(100,100);
//创建按键2
b2 = new QPushButton;
b2->setText("我是按键2");
b2->move(200,100);
//信号和槽连接函数:connect();
//四个参数:**不要忘记取地址**
//此处的pressed信号没有没有参数,所以定义的槽函数也没有参数
connect(b1, &QPushButton::pressed, this, &MainWidget::soltForMainWidget);
}
void MainWidget::soltForMainWidget()
{
b2->setText("我被b1更改了");
}