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