3

Mac OS X10.7.4でQt4.7.4を使用していますが、アプリケーションにを追加しようとしていますが、成功しません。QMenuBarQMenu

例を探していると、基本レイアウトが見つかりました。Windowsのインターフェイスのスクリーンショットには、[ファイル]メニューが表示されています。これは、私がやろうとしていることです。

ここに画像の説明を入力してください

ただし、この例をMac OS Xで実行しても、アプリケーションウィンドウ内に[ファイル]メニューは表示されません。

ここに画像の説明を入力してください

また、MacOSXの上部のバーにも表示されません。

ここに画像の説明を入力してください

これはMacOSXのQt4.7.4のバグであるか、Macで動作させるためにソースコードを微調整する必要があるようです。

この問題を解決するにはどうすればよいですか?

Stack Overflowで同様の投稿を見つけましたが、役に立ちませんでした。

4

1 に答える 1

8

コードにも Qt にも問題はありません。あなたが引用した例Exitは、メニューにアクションを作成するだけです。OS X では、このようなアクションは [ファイル] メニューではなく、アプリケーション メニューに属します。アプリケーションは と呼ばれqt_menu、それがアプリケーション メニューの呼び出し方であり、そこにQuitアクションがあります。Qt は、Apple の HIG に合わせて名前を正しく変更しました。Windows では、Exit と呼ぶのが通例ですが、Mac ではスタイルが悪いです。Qt の動作は正しく、再現できます。

ファイル メニューに他のアクションを追加するか、1 つのアクションの名前を別の名前に変更しExitます。

Qt は名前に基づいてアクションを直接移動しないことに注意してください。Qtは名前に基づいてアクションロールを推測します。このような推測をオーバーライドし、 を使用してアクションの役割を明示的に設定する必要がありますQAction::setMenuRole()。これらの役割は、さまざまなプラットフォームで適切に解釈されます。

于 2012-07-09T00:55:22.447 に答える