qt 全局函数如何使用发送信号
时间: 2023-08-22 07:09:40 浏览: 278
通过全局对象传递数据
在中,全局函数是无法直接发送信号的,因为信号必须是QObject的成员函数才能够发送。但是,可以使用一个QObject对象作为信号发送者,并将其与全局函数连接起来,达到类似全局函数发送信号的效果。
以下代码演示了如何使用QObject对象作为信号发送者来连接全局函数:
```cpp
#include <QObject>
// 全局函数
void myGlobalFunction()
{
// 发送信号
emit mySignal();
}
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QObject obj;
// 将全局函数与obj的信号连接起来
QObject::connect(&obj, &QObject::destroyed, &myGlobalFunction);
return app.exec();
}
```
在上面的代码中,我们在全局定义了一个函数`myGlobalFunction`,并使用`emit`关键字在函数内部发送信号。接着,在主函数中创建了一个QObject对象`obj`,并将其信号`destroyed`与全局函数`myGlobalFunction`连接起来。当`obj`对象被销毁时,就会触发`destroyed`信号,从而调用全局函数`myGlobalFunction`,达到了类似全局函数发送信号的效果。
阅读全文