qt+带参数的槽函数关联
时间: 2024-06-13 19:10:09 浏览: 73
Qt信号与槽机制
在Qt中,可以使用QObject::connect()函数将信号与槽函数关联起来。如果需要将参数传递给槽函数,可以使用QSignalMapper类或者Qt的新连接语法。下面是两种方法的示例代码:
1.使用QSignalMapper类
```cpp
// 创建一个QSignalMapper对象
QSignalMapper *mapper = new QSignalMapper(this);
// 将信号与QSignalMapper对象的map()函数关联
connect(sender, SIGNAL(clicked()), mapper, SLOT(map()));
// 将参数传递给QSignalMapper对象
mapper->setMapping(sender, "hello");
// 将QSignalMapper对象的mapped()信号与槽函数关联
connect(mapper, SIGNAL(mapped(QString)), this, SLOT(onButtonClicked(QString)));
// 槽函数
void MyClass::onButtonClicked(QString text)
{
qDebug() << text;
}
```
2.使用Qt的新连接语法
```cpp
// 将信号与槽函数关联,并传递参数
connect(sender, &QPushButton::clicked, this, [=](){
onButtonClicked("hello");
});
// 槽函数
void MyClass::onButtonClicked(QString text)
{
qDebug() << text;
}
```
阅读全文