현재 스레드를 만들고 있습니다.
해당 스레드가 GUI와 상호 작용하기 위해 주 스레드와 통신하려는 경우 주 위젯 스레드의 슬롯에 연결된 신호를 내 보냅니다.이 기능은 정상적으로 작동합니다.
그러나이 솔루션의 경우 원래 GUI 양식으로 돌아가 슬롯을 추가해야합니다.QWidgets 스레드의 인스턴스에서 람다 함수 슬롯 실행
람다 함수를 사용하여이 작업을 수행 할 수 있는지 알고 싶습니다. 예를 들어 다음 예제에서는 foo
클래스가 별도의 스레드에서 실행됩니다. 이처럼
QObject::connect(this,&myclass::someSignal,
[](std::string msg)
{
QMessageBox::information(mptr,"Some title",
msg.c_str(),QMessageBox::StandardButton::Ok);
});
위젯을 GUI 스레드에서 만들어야한다는 오류가 발생합니다. 그리고 나는 그것을 이해합니다.
mptr
인스턴스에서이 슬롯을 실행하도록 지정하는 방법이 있는지 알고 싶었습니다. 우리가 이전 Qt는 QObject::connect
신호 슬롯 매개 변수를 사용하는 것처럼
'mptr' 무엇입니까? 이 코드를 사용하는 클래스의 멤버 변수입니까? – Praetorian
mptr은 메시지 상자를 표시해야하는 QMainWindow의 주소입니다. – Rajeshwar
여기에 "누락 된 기능/제안"이 무엇이라고 생각합니까? https://bugreports.qt-project.org/browse/QTBUG-32339 – fasked