問題タブ [qt4.6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ユーザーが MainWindow をアクティブにしようとすると、モーダル QDialog を発生させます
exec()を使用して開かれるいくつかのQDialogを含むQMainWindowがあり、したがってモーダルです (これは望ましい動作です)。
ここで、ユーザーがこれらのダイアログの 1 つを開いているときに、メインウィンドウではなくダイアログにオーバーラップする外部プログラム (Web ブラウザーなど) と対話することを選択し、プログラムに戻ろうとすると、モーダル ダイアログによるメイン ウィンドウの可視領域。戻るには、ビューを妨げている他のウィンドウを QDialog に移動/最小化するか、タスクバーを使用してアクティブ化する必要があります。これにより、プログラムがフリーズしているように見える場合があります (特に、しばらく時間が経過し、ユーザーが開いているダイアログに気付いていない場合)。
このような場合、メインウィンドウ/ダイアログでさまざまなフォーカス/マウスイベントをオーバーロードして QDialog を発生させますが、ダイアログが表示されているときにメインウィンドウをクリックするとアクティブになるイベントが見つかりませんでした。誰かがこれに対する解決策を知っていますか? これまで見落としていたに違いない簡単なものだと思います。