シミュレーターを開発しています。GUI には QT を選択しました。私のプロジェクトには多くのデータ操作が含まれており、結果をプロットするためだけに QT を使用しています。
私のコード構造は、メイン関数にデータのグローバル オブジェクト、QT GUI のオブジェクト、およびこのデータを操作するためのその他のオブジェクトが含まれるようになっています。このデータは 30 ミリ秒ごとに変更する必要があります。メインファイルの簡略版も添付しました。
私の問題は、QT オブジェクトを終了する前に、他のオブジェクト (GUI 以外) の関数を呼び出せないことです。新しいデータをプロットして正常に動作するタイマーを QT に単独で実装しました。私がしたいのは、QT オブジェクトに依存しない特定の時間間隔で ai および phySim オブジェクトを呼び出すことだけです。この 3 つのオブジェクトを完全に独立させたいと考えています。
world* _world;
int main(int argc, char *args[])
{
_world = new world();
gui *GUI; ///QT object
ai *AI;//object to manipulate data
phySim *sim;//object to manipulate data
/////////////////////////////////// this gets executed only when i close the QT gui
AI = new ai(_world);
AI->doSomething();
sim = new phySim(_world);
sim->updateWorld();
//////////////////////////////////////////////////////////////////////////////
QApplication app(argc,args);
GUI = new gui(_world);
GUI->show();
return app.exec();
}