Qt 帮助框架简介

这篇具有很好参考价值的文章主要介绍了Qt 帮助框架简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

Qt帮助系统包括生成和查看Qt帮助文件的工具。此外,它还提供了以编程方式访问帮助内容的类,以便能够将在线帮助集成到Qt应用程序中。

实际的帮助数据,也就是目录、索引关键字或HTML文档,都包含在Qt压缩帮助文件中。所以,一个这样的帮助文件通常代表了一个手册或文档集。由于大多数产品都比较全面,由许多工具组成,所以很少有一本手册就够了。取而代之的是更多的手册,这些手册应该是可以同时访问的。理想情况下,还应该可以将一个手册的某些兴趣点引用到另一个手册中。因此,Qt帮助系统是在帮助集合文件上运行的,其中包括任何数量的压缩帮助文件。

然而,拥有集合文件来合并许多文档集可能会导致一些问题。例如,一个索引关键字可能在不同的文档集中被定义。因此,当只看到索引中的一个关键字并激活它时,你不能确定会显示预期的文档。因此,Qt帮助系统提供了在某些属性后过滤帮助内容的可能性。但是,这要求在生成压缩帮助文件之前,这些属性已经被分配到帮助内容中。

如前所述,Qt压缩帮助文件包含了所有的数据,所以不再需要发布所有的单个HTML文件。取而代之的是,只有压缩帮助文件和可选的集合文件需要发布。收集文件是可选的,因为任何现有的收集文件,例如旧版本的,都可以使用。

因此,一般来说,有四个文件与帮助系统交互,两个用于生成Qt帮助,两个用于分发。

名称 扩展 简要描述
Qt帮助项目(Qt Help Project) .qhp 包含目录、索引和对实际文档文件的引用(*.html)。它还为文档定义了一个独特的命名空间。该文件被传递给帮助生成器,用于创建压缩的帮助文件。
Qt压缩帮助(Qt Compressed Help) .qch 包含帮助项目文件中指定的所有信息以及所有压缩文档文件。
Qt帮助收集项目(Qt Help Collection Project) .qhcp 一个XML文件,它包含了应该包含在帮助集合中的压缩帮助文件的引用。这个文件可以传递给帮助生成器,用于创建帮助集合文件。
Qt帮助集(Qt Help Collection) .qhc QHelpEngine操作的帮助集合文件。它可以包含对任意数量的压缩帮助文件的引用以及附加信息。

生成Qt帮助

为Qt帮助系统建立帮助文件的前提是HTML文档文件已经存在。

HTML文档放置到位后,必须创建扩展名为 .qhp 的Qt帮助项目文件。在此文件中指定所有相关信息之后,需要通过调用以下命令进行编译:

qhelpgenerator doc.qhp -o doc.qch

文件doc.qch包含所有压缩形式的HTML文件以及目录和索引关键字。要测试生成的文件是否正确,请打开Qt Assistant并在“设置>文档”中安装该文件。

对于标准的Qt源码构建,会生成.qhp文件,并放置在与HTML页面相同的目录中。

创建一个Qt帮助集合

第一步是创建一个Qt帮助集合项目文件。由于Qt帮助集主要是存储对压缩帮助文件的引用,因此项目mycollection.qhcp文件看起来非常简单。

<?xml version="1.0" encoding="utf-8" ?>
<QHelpCollectionProject version="1.0">
    <docFiles>
        <register>
            <file>doc.qch</file>
        </register>
    </docFiles>
</QHelpCollectionProject>

用于实际创建收集文件的调用。

qhelpgenerator mycollection.qhcp -o mycollection.qhc

要一次性生成压缩帮助和集合文件,请修改帮助集合项目文件,使其指示帮助生成器先生成压缩帮助。

...
<docFiles>
    <generate>
        <file>
            <input>doc.qhp</input>
            <output>doc.qch</output>
        </file>
    </generate>
    <register>
        <file>doc.qch</file>
    </register>
</docFiles>
...

当然,可以在“ generateregister 部分中指定多个文件,因此可以一次性生成和注册任意数量的压缩帮助文件。

使用Qt Help

可以通过两种方式访问帮助内容:使用Qt Assistant作为文档浏览器,或使用QHelpEngine API将帮助内容嵌入到应用程序中。

通过Qt Assistant

Qt Assistant对一个集合文件进行操作,该文件可以在启动前指定。如果未给定集合文件,则将创建并使用默认的集合文件。在任何一种情况下,都可以注册任何Qt压缩的帮助文件并访问帮助内容。

当使用Qt Assistant作为应用程序的帮助浏览器时,应该可以对其进行自定义以更好地适应应用程序,这样它就不会看起来像一个独立的帮助浏览器。为了实现这一点,可以在Qt帮助集合文件中设置几个附加属性,例如更改Qt Assistant的标题或应用程序图标。

通过QHelpEngine API

除了在外部应用程序(如Qt Assistant)中显示帮助之外,还可以在应用程序中嵌入在线帮助。然后可以通过QHelpEngine类检索内容,并且可以以几乎任何形式显示。在QTextBrowser中显示帮助可能是最常见的方式,但将其嵌入What’s This帮助中也是完全可能的。

从文件引擎检索帮助数据不涉及大量代码。第一步是创建帮助引擎的实例。然后,我们向引擎询问分配给标识符的链接,在本例中为MyDialog::ChangeButton。如果找到了一个链接,意味着该主题至少存在一个帮助文档,我们将通过调用QHelpEngineCore::fileData()来获得实际的帮助内容,并向用户显示该文档。

QHelpEngineCore helpEngine("mycollection.qhc");
...

// 获取标识符的所有文件引用
QList<QHelpLink> links = helpEngine.documentsForIdentifier(QLatin1String("MyDialog::ChangeButton"));

// 如果此关键字有帮助,请获取帮助数据
// 第一个文件引用。
if (links.count()) {
    QByteArray helpData = helpEngine->fileData(links.constBegin()->url);
    // 向用户显示文档
    if (!helpData.isEmpty())
        displayHelp(helpData);
}

有关如何使用API的更多信息,可以参考QtHelpEngine的官方说明。文章来源地址https://www.toymoban.com/news/detail-467236.html

到了这里,关于Qt 帮助框架简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何把本地flask项目(框架)上传到服务器(Linux),并后台持续运行(包括requirements文件生成,python项目与域名绑定,保姆级教程)

     2023年中旬,参加了一个比赛,需要搭建一个网站。在不断探索琢磨之后,搭建了一个基于flask的web。直接上干货: 一、首先,在本地准备好自己的flask项目。包括最基本的三个文件: 然后准备生成requirements.txt文件,这个文本文件会告诉服务器你的项目运行所需要的环境,即

    2024年02月04日
    浏览(51)
  • Ubuntu22.04安装Qt开发环境(包括VMware虚拟机、Ubtuntu系统以及QT的安装与卸载!)

    title: Ubuntu22.04安装Qt开发环境(包括安装与卸载!) date: 2023-8-6 sidebar: auto author: xiol(十六进制) tags: 学习 C++ Qt categories: Qt 🍓🍊在Ubuntu22.04下安装Qt🍭🍓🍬 最近单位的虚拟机越用越卡,打算重新安装一下环境,把遇到的问题以及解决办法详细记录一下。 1.1 确定安装好VMwar

    2024年01月23日
    浏览(62)
  • 【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角

    在探讨 Qt 的世界时,我们不仅是在讨论一种编程框架,更是在探索一种将复杂技术细节隐藏于幕后、让开发者专注于创造性工作的艺术形式。正如著名的计算机科学家 Edsger Dijkstra 所言:“简洁是复杂性的先决条件。” 在这一章节中,我们将探讨 Qt 事件机制的基础概念,这

    2024年02月22日
    浏览(55)
  • C#写一套最全的SQL server帮助类(包括增删改查)

    我定义了一系列静态方法,用于执行SQL Server数据库的增删改查等操作。 其中: ExecuteNonQuery方法用于执行指定的SQL语句并返回受影响的行数; ExecuteScalar方法用于执行指定的SQL语句并返回查询结果的第一行第一列; ExecuteDataTable方法用于执行指定的SQL语句并返回一个数据表;

    2023年04月21日
    浏览(28)
  • QT图形视图框架——坐标系统

    图形项坐标     以图形项的左上角为原点。     创建自定义图形项时,只需要考虑图形项的坐标系统     没有父图形项的是顶层图形项,在场景坐标系中,可以用setPos()函数指定图形项的位置,没有指定时出现在原点处。子图形项的坐标不会受到父图形项的变换的影响,

    2024年02月16日
    浏览(37)
  • C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据

    对上两篇篇的工作C++ Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个 保存按钮,用于保存成绩数据。 1)在ui界面添加一个按钮         将其命名为saveBtn。

    2024年02月19日
    浏览(44)
  • KBYCMS框架后台使用帮助介绍

    后台入口文件默认是 public 目录下的 admin.php 。访问后台时加上 admin.php 访问,您可根据需要,重命名后台入口文件。 重命名后需要在 config/app.php 文件中修改配置,配置如下,如果没有以下配置那么该版本无需理会。     配置站点功能,配置站点信息。如下图,可根据需要调

    2024年02月15日
    浏览(32)
  • QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 终篇

    接上一篇,我们需要继续完成以下的效果; 先上个效果图: 资源路径:https://download.csdn.net/download/turbolove/88192114?spm=1001.2014.3001.5503 上一篇我们绘制了标尺,并且我们修改了放大缩小和对应的背景,整体看来,我们的滚动条会和背景不搭配,因此我们需要修改我们的背景,这

    2024年02月13日
    浏览(37)
  • Ubuntu系统下搭建QtCreator开发环境详细过程(Qt简介;Linux下安装QtCreator)

    关于Qt的相关介绍,可以参考QT从入门到实战x篇,Qt 5.9 C++开发指南,对于重复部分,本栏目不做详细介绍。关于Linux的基础,本人将重新整理一个栏目,就叫 Linux基础 吧,有需要的可以后期关注下。 Qt 是一个跨平台的 C++开发库。主要用来开发图形用户界面 (Graphical User Inter

    2024年02月12日
    浏览(58)
  • 体验文心一言AI大模型生成贾跃亭、谷超豪和鸿蒙系统简介

    贾跃亭,男,汉族,1973年12月15日出生于山西省临汾市襄汾县,乐视控股集团创始人、乐视汽车生态全球董事长。 鸿蒙系统(HUAWEI Harmony OS),是华为公司在2019年8月9日于东莞举行的华为开发者大会(HDC.2019)上正式发布的操作系统。 华为鸿蒙系统是一款全新的面向全场景的

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包