我正在Mac OS X上构建一个Qt应用程序,我决定创建一个帮助手册。我尝试使用official docs,但帮助手册没有显示在帮助菜单中。
帮助手册位于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>
它仍未显示在我的应用程序的“帮助”菜单中。怎么了?
答案 0 :(得分:0)
问这个问题已经五年了,但我刚刚弄清楚如何做到这一点,所以我想我会分享我的发现。
除了将@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"
替换为您自己锚点的名称。