Как обратиться к методам второго потока из другого диалогового окна

73
14 января 2022, 13:40

Создал диалоговое окно "X" из главного окна. Создал второй поток в диалоговом окне "X". Закрыл окно "X", но второй поток еще существует (время существования потока бесконечно). Хочу обратиться с методам второго потока из главного окна, но как мне это сделать? Указатель на объект остался у меня в окне "X". Как мне передать указатель на объект из окна "X" в главное окно?

Answer 1

Концепция QT - сигнал-слоты. лучше избегать прямого обращения к методам. Правильнее как-то так:

for(int i=0;i<100500;i++){
  QThread* thread = new QThread();
  MyObject* obj = new MyObject();
  obj->moveToThread(thread);
.... // тут всякая шелуха с запуском/остановкой потока
  connect(this, SIGNAL(sendToAll(QString message)), obj,SLOT(slotInMessage(QString message))); // сигнал из основного потока привязываем к слотам во всех потоках
  thread->start();
}
emit sendToAll("чмоки всем"); // все ваши потоки получат сообщение
READ ALSO
Скрытие группы столбцов в GridView

Скрытие группы столбцов в GridView

Создал форму с группой чекбоксов(36 штук)Необходимо, чтобы при выборе любого чекбокса его название сохранялось в лист ToHide

89
Получение ответа используя WebRequest

Получение ответа используя WebRequest

Провел много времени в поисковиках но ответа так и не нашел

72
Проверка строк на соотвествие [закрыт]

Проверка строк на соотвествие [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

135