フラグを設定してスレッドの停止を開始する (そしてスレッド内から戻る) には、スレッドと通信する必要があります。
スレッド化はこのように実装されています
MyClass* obj = new MyClass(0);
connect( this,SIGNAL( stop() ),obj, SLOT(stop()));
emit stop(); // slot is called (qDebug output)
MyThread = new QThread;
obj->moveToThread(MyThread);
connect( ... started() ... quit() ... finished() ... deleteLater() ...
....
emit stop(); // slot isn't called (qDebug output)
スロットにはまだロジックがなく、qDebug() 出力を使用するだけです。オブジェクトの作成と接続は、メイン ウィンドウ メソッドで行われます。
残念ながら、何が間違っているのかわかりません。オブジェクトがスレッドに移動されると、スロットは実行されなくなります。