qt+带参数的槽函数关联
时间: 2024-06-13 22:10:09 浏览: 17
在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;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)