4
当前我正在创建一个线程。
如果该线程想要与主线程通信以便与GUI进行交互,它会发出连接到主窗口小部件线程上的插槽的信号。这一切都很好。
但是,对于这个解决方案,我必须回到我原来的GUI形式并添加插槽。在QWidgets线程的实例上运行一个lambda函数槽
我想知道我是否可以简单地使用lambda函数来做到这一点。 例如,在以下示例中,类foo
是在单独的线程上启动的。像这样
QObject::connect(this,&myclass::someSignal,
[](std::string msg)
{
QMessageBox::information(mptr,"Some title",
msg.c_str(),QMessageBox::StandardButton::Ok);
});
这给出了必须在GUI线程中创建Widget的错误。我明白这一点。
我想知道是否有方法让我指定在mptr
实例上运行此插槽。像我们这样使用老的Qt QObject::connect
信号插槽参数
什么是'mptr'?它是您使用此代码的类的成员变量吗? – Praetorian
mptr是一个'QMainWindow'的地址,它应该显示消息框 – Rajeshwar
我想这里是“缺少的功能/建议”你在找什么,不是吗? https://bugreports.qt-project.org/browse/QTBUG-32339 – fasked