2011-07-13 9 views
7

私はQtアプリケーションをMac OS Xに移植しています。Windows/LinuxではQLineEditを使ってヘルプメニューの検索機能を提供しました。マックOS XではQt on Mac - ヘルプメニューの "検索"にアクセスする方法

が、私はこのような何かを見ているビルトイン: enter image description here

は、どのように私はQtのと、この検索バーにアクセスすることができます(つまり、そこに自分自身の要素を追加しますか)?私はドキュメントのQMenuBarを見たが、関連するものは何も見つかりませんでした。可能であれば、C++ QtアプリケーションからネイティブAPIを少なくとも使用できますか?

ありがとうございます。

+5

+1プラットフォームに一貫したエクスペリエンスを提供することを心がけています。 –

答えて

3

これはQtから直接行うことはできないようですが、この1つの機能をObjective-C++/Cocoaで実装できます。

NSApplicationのメソッドでは、検索項目を照会および返すためのカスタム関数を登録することができます。

QtHelpは自動インデックス作成をサポートしているようです。つまり、検索を委任できます。

4

これは、Spotlight For Helpの検索フィールドです。このフィールドは、システムによって完全に制御されています。アプリケーションのヘルプブックとメニュー項目の結果が自動的に表示されます。 AFAIKでは、手動で設定することはできません。アプリケーションのヘルプブックを作成すると自動的に機能します。

Apple Help Concepts: The Help Menuを参照してください。

+0

あなたに+1してください、これは私の唯一のオプションです。プログラムから直接行う方法がないかどうかを私はたぶん1日待つつもりです。そうでなければこれを受け入れます。 – houbysoft

+1

は、ターミナルアプリケーションで、ヘルプメニューにもマニュアルページが表示されていることがわかりました。ターミナルのスポットライト検索フィールドに 'man'と入力してみてください。それをクリックすると、マンページを表示する新しいターミナルウィンドウが開きます。したがって、手動で入力される可能性がありますか?マニュアルページはヘルプブックやメニュー項目にはありません。 – houbysoft

+0

うーん、非常に興味深い!申し訳ありませんが、それが公開APIであるかどうかはわかりません。 – deceze

3

アプリケーションにヘルプメニューを追加すると、Qtによって自動的に検索ボックスが追加されます。 http://doc.qt.io/qt-4.8/mac-differences.html#menu-bar

+0

はい、それは自動的に追加されますが、私が必要とするのは自分自身のアイテムを追加することです - 下のdecezeの回答に従ってヘルプブックを作成する必要があるようです。今はメニュー項目だけを検索します。 – houbysoft

1

検索メニューを取り除くことができます。Mac OSXはヘルプメニューにメニューを追加するだけです。スペースを追加するだけです:

QMenu *helpMenu = menuBar()->addMenu(" Help")); 

となります。

関連する問題