在Qt应用程序中注册帮助手册
Registering Help Book in Qt app
我正在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>
它仍然没有显示在我的应用程序的帮助菜单。怎么了?
这个问题已经问了五年了,但我刚刚想出了如何去做,所以我想我应该分享一下我的发现。
除了添加键@houbysoft提到的信息。,还需要手动将菜单项添加到调用帮助查看器的帮助菜单中。
那么示例代码(在初始化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"
替换为您自己的锚的名称
相关文章:
- 无法将结构注册为增强几何体3D点
- 需要帮助设置在C++中使用的Potrace
- 在指针的帮助下,文本文件中单词的频率
- 如何使用AngelScript注册SFML Vector2运算符
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- 在遍历处理程序的向量时注册和注销处理程序
- 有没有任务栏API可以立即应用注册表更改
- 使用QJsEngine在Qt中注册自定义类型
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 检查注册表项是否链接到(或副本)另一个注册表项
- 如何使用 TStyleManager::UnRegisterStyle() 取消注册样式
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- SFML 碰撞永远不会在我的系统中注册
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- C 注册并登录程序帮助
- 如何在 Windows11(x7) 上使用 EPM 一次将 64 个浏览器帮助程序对象 dll 注册到 IE7 中
- Glutkeyboard输入未注册没有奇数循环帮助
- 在Qt应用程序中注册帮助手册