Как раз так уже попробовал, но
Java
//в главном классе (основной поток):
this.signalStop.connect(this.thread, "thStop()");
//класс, который содержит run() и QEventLoop в нём:
public QEventLoop loop;
public void run()
{
this.loop = new QEventLoop();
this.loop.exec(QEventLoop.ProcessEventsFlag.X11ExcludeTimers);
}
public void thStop()
{
this.loop.exit();
}
Испускаю сигнал в главном потоке this.signalStop.emit(); после чего ошибка о разных потоках. Как в этом случае одолеть? Ведь если QEventLoop создать в run()'e, к нему нельзя будет обратиться для завершения((
Притом пример из доки:
Java
class EventLoopThread implements Runnable
{
@Iverride
public void run()
{
QEventLoop loop = new QEventLoop();
loop.exec();
// Do whatever
loop.exit();
}
}
Ерунда какая-то.