// 方式一:(含参槽函数记得自行在.h进行声明)
connect(自己的控件名, 控件对应的触发方式, this, [=]() {
sltFunction();
});
connect(m_QAction1, &QAction::triggered, this, [=]() {
sltFunction(1);
});
connect(m_QAction2, &QAction::triggered, this, [=]() {
sltFunction(0);
});
void DataEditorView::sltFunction()
{
QMessageBox::warning(0, "", "i is null");
}
void DataEditorView::sltFunction(int i)
{
if (i == 1)
{
QMessageBox::warning(0, "", "i is 1");
}
if (i == 0)
{
QMessageBox::warning(0, "", "i is 0");
}
}
// 方式二:
// .h中先声明自定义的槽函数与含参信号
public slots:
void sltListen(QString str,float fValue);
signals:
/*
第一个参数:列范围
第二个参数:目标值
*/
void sigSay(QString, float);
// .cpp中发送信号、绑定信号
void 类名::function()
{
// 发送信号
emit sigSay("HELLO WORLD",100.f);
}
// 实现槽函数
void 类名::sltSayHello(QString str,float fValue)
{
QMessageBox::warning(0,QString("%1").arg(fValue),str);
}
// 绑定信号
connect(你自己的控件名, SIGNAL(sigSay(QString, float))
,this, SLOT(sltListen(QString, float)));