Qt信号槽传递参数的使用记录
程序员文章站
2024-01-04 12:44:52
...
Qt信号槽传递参数的使用记录
信号槽传递参数大致分为两种:
(1)信号函数参数个数与槽函数参数个数相同
举例:
.h文件中:
signal:
void m_signal1(int a);
private slots:
void m_slot1(int a);
.cpp文件中
信号与槽连接:
connect(this, SIGNAL(m_ignal1(int)), this, SLOT(m_slot1(int)));
void MainWindow::m_slot1(int a)
{
qDebug() << a;
}
信号触发:
void MainWindow::on_pushButton_clicked()
{
emit m_signal1(3);
}
触发信号按钮按下后,会在程序输出口打印3。
(2)信号函数参数个数与槽函数参数个数不同
信号的参数与槽函数的参数数量不同时,只能是信号的参数数量多于槽函数的参数数量,且前面相同数量的参数类型应相同,信号中多余的参数则会被忽略。
举例:
.h文件中:
signal:
void m_signal2(int a, float b, int c);
private slots:
void m_slot2(int a, float b,);
.cpp文件中
信号与槽连接:
connect(this, SIGNAL(m_ignal2(int,float,int)), this, SLOT(m_slot2(int,float)));
void MainWindow::m_slot2(int a, float b)
{
qDebug() << a << b;
}
信号触发:
void MainWindow::on_pushButton_clicked()
{
emit m_signal2(3,3.8);
}
触发信号按钮按下后,会在程序输出口打印3和3.8。