1

「connect」を使いたいのですが、こう書くと

QApplication a(argc, argv);
connect ....
a.exec();

最後のコマンド ( ) の後でブロックされa.execます。しかし、このコマンドを使用しないと、コールバックが機能しません。

重要なのは、私は窓を一切開けていないということです。私がやりたいのは、「接続」オプションだけです。

4

2 に答える 2

2

電話する必要はありませんapp.exec()。代わりにできることは、定期的に呼び出すことQCoreApplication::processEvents()です。ただし、Qt 以外のアプリを移植する場合を除き、これはお勧めできません。Qt の多くの機能はイベント ループに依存しており、それをバイパスしようとすると問題が発生します。可能であれば、独自のコードをイベント ループで動作させることをお勧めします。

于 2013-03-04T14:05:17.330 に答える
1

GUI を使用していない場合は、QApplication の代わりに QCoreApplication を使用してください。

申し訳ありませんが、良い答えではありません。

接続を Qt メイン イベント ループ内の何かに移動することを検討する必要があります。それが実際に不可能な場合は、おそらく QCoreApplication 呼び出しを実行する別のスレッドをスピンオフする必要があります。

于 2013-03-04T13:07:56.360 に答える