1

メインウィンドウ上でモーダルダイアログボックスを起動できるアプリケーションがあります。メインウィンドウには、バックグラウンドで実行されているネットワークアクティビティがあり、バックグラウンドUIが更新されます。これにより、モーダルダイアログが開いていてもアプリケーションメニューにアクセスできるようになります。

どうすればこれを回避できますか?どんな助けでも大歓迎です。

私はMac、Qt、Carbonを使用しています。

4

3 に答える 3

3

Mac OS Xではアプリケーションメニューを無効にすることはできません。常に「アクティブ」ですが、ダイアログが表示されているときに使用したくないアクションを無効にすることはできます。

于 2010-03-17T20:10:25.597 に答える
0

モーダルダイアログに独自のメニューバーを作成させることができます。これにより、ダイアログが表示されている間、メインウィンドウが上書きされます。

アクションを許可したくない場合は、ダイアログを親として空のQMenuBarを作成するだけです。あなたもそれを表示する必要はありません。Qtはそれを見つけて、自動的にグローバルメニューバーにプロモートします。

于 2015-12-03T12:32:30.113 に答える
0

私はUbuntuでも同様の問題を抱えていたので、これでMacOSXでも問題が解決する可能性があります。簡単です。QMenu.nativeMenuBarメインメニューバーのプロパティを無効にするだけmenuBar->setNativeMenuBar(false)です。ここで受け入れられた回答を参照してください:モーダルダイアログボックスでアクティブなグローバルアプリケーションメニュー(Linuxの場合)

于 2016-09-17T13:19:51.667 に答える