4

いくつかの操作を実行したい画像のスタックがあります。各画像を処理した後、私のプログラムはダイアログをポップアップして、次の画像に進むか中止するかをユーザーに促します。その前に、画像またはパラメーターのいずれかを手動で変更する機会が必要です。とにかく、アプリケーションのウィンドウにアクセスできる必要がありますが、ダイアログを呼び出したメソッドの実行は、ダイアログが閉じられるまでブロックする必要があります。

これを QMessageBox で解決しようとしましたが、exec() 経由で開くとアプリケーション全体がブロックされ、show() を使用するとユーザーの反応を待たずにプログラムの実行が続行されます。

呼び出し元のメソッドまたは関数をダイアログでブロックし、ユーザーが他のウィンドウと対話できるようにする便利な方法はありますか?

ヒントをお寄せいただきありがとうございます。

4

1 に答える 1

5

ブロックするメソッドを 2 つの部分に分割する必要があります。最初の部分の最後に、ブロックせずにダイアログを表示し、ダイアログの「次へ」ボタン(たとえば)を、古いメソッドの2番目の部分を含む必要があるスロットに接続する必要があります。このスロットは、ユーザーがボタンを押したときにのみ実行されます。

Qtでそれを行う正しい方法です。これを実装するには、コード ロジックを変更する必要がある可能性があります。

また、本当に 2 番目のダイアログが必要ですか? メインウィジェットに「次へ」ボタンを配置できます。いくつかの設定と「次へ」ボタンを含む別のモーダル ダイアログを作成することもできます。

于 2012-05-10T13:13:28.290 に答える