В настоящее время я создаю поток.
Если этот поток хочет взаимодействовать с основным потоком, чтобы взаимодействовать с графическим интерфейсом пользователя, он излучает сигналы, которые подключены к слотам в основном потоке виджетов. Все работает нормально.
Однако для этого решения мне нужно вернуться к исходной форме графического интерфейса пользователя и добавить в нее слоты.
Я хотел знать, могу ли я просто сделать это с помощью лямбда-функций. Например, в следующем примере класс foo
запускается в отдельном потоке. Нравится
QObject::connect(this,&myclass::someSignal,
[](std::string msg)
{
QMessageBox::information(mptr,"Some title",
msg.c_str(),QMessageBox::StandardButton::Ok);
});
Это дает ошибку, что виджет должен быть создан в потоке графического интерфейса. И я это понимаю.
Я хотел знать, есть ли у меня способ указать запускать этот слот на mptr
экземпляре. Как мы это делаем, используя старый параметр слота сигнала Qt QObject::connect
mptr
? Является ли это переменной-членом класса, в котором вы используете этот код? - person Praetorian   schedule 04.03.2014QMainWindow
, который должен отображать окно сообщения - person Rajeshwar   schedule 04.03.2014