3

Mac OS XでQtアプリケーションを構築していて、ヘルプブックを作成することにしました。公式ドキュメントを使おうとしましたが、ヘルプメニューにヘルプブックが表示されません。

ヘルプブックはにありmy.app/Contents/Resources/HC.help/ます。それ自体は問題ないようです。HelpViewer.appで直接開いてみましたが、問題なく開きました。

これは私がそれを登録する方法ですmy.app/Contents/Info.plist

<key>CFBundleHelpBookFolder</key>
<string>HC.help</string>
<key>CFBundleHelpBookName</key>
<string>com.houbysoft.hc.help</string>

それでもアプリケーションのヘルプメニューに表示されません。どうしたの?

4

1 に答える 1

0

この質問が出されてから 5 年が経ちましたが、その方法を見つけたばかりなので、調査結果を共有することにしました。

@houbysoft が言及したキーを Info.plist に追加するだけでなく、ヘルプ ビューアーを起動するヘルプ メニューにメニュー項目を手動で追加する必要がありました。

コード例 (QMainWindow の初期化):

QMenu *helpMenu = new QMenu("Help", menuBar());
helpMenu->addAction(tr("&XYZ Help..."), this, SLOT(showHelp()));

(または、おそらく Designer を使用して、別の方法でメニュー項目を追加することもできます。)

showHelp() メソッド:

void openHelp()
{
    CFBundleRef appBundle = CFBundleGetMainBundle();

    if (appBundle == NULL) {
        return;
    }

    CFStringRef myBookName = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(appBundle, CFSTR("CFBundleHelpBookName"));

    if (!myBookName || CFGetTypeID(myBookName) != CFStringGetTypeID()) {
        return;
    }

    AHLookupAnchor(myBookName, CFSTR("Start"));
}

ドキュメントの最初のページに「Start」という名前のアンカーを追加したことに注意してください。"Start"独自のアンカーの名前に置き換えます。

于 2016-12-01T02:09:01.870 に答える