Qt アプリケーションのメイン ウィンドウは通常のQMainWindow
サブクラスです。そのウィンドウにはいくつかのボタンがあります。それぞれにclicked
独自のスロットに接続された信号があり、各スロットは次のQDialog
ように異なるものを作成します。
void onButtonA_clicked()
{
MyADialog* dialog = new MyADialog(this);
dialog->exec();
delete dialog;
}
私はこの記事を読んでいます: https://wiki.qt.io/Threads_Events_QObjects#Events_and_the_event_loopと著者は言います
イベントループを決してブロックしないでください
それは私を心配させました。exec
はブロッキング関数であるため、彼がそこで言っていることによると (彼の例でWorker::doWork
は多くの作業が行われ、完了するまでに時間がかかります)、私のコードはイベント ループをブロックしていますが、これを示唆するものは何も気づいていません。それどころか、メインウィンドウは正常に動作しているようで、メソッドを使用するようにコードを変更しても違いはありませんでしたshow()
。
イベントループをブロックしていますか? ここで別のアプローチを使用する必要がありますか?