Qt 帮助框架使用

news2024/11/29 12:55:05

前面我们已经简单了解了Qt帮助框架,本节我们将举例说明生成Qt帮助集,并自定义Qt Assistant。

准备工作

因为创建帮助系统建立帮助文件的前提是HTML文档文件已经存在,所以我们来弄一些简单的HTML文档(难的我还不会)。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>首页</title>
</head>
<body>
    <div class="brief-introduction">
        <p>欢迎来到啥也不是</p>
    </div>
</body>
</html>

section1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>第一节</title>
</head>
<body>
    <div class="section 1">
        <div class="header">
            <p>第一节,学完啥也不是</p>
        </div>
        <div class="info">
            <p>啥也不是书里面写的就是啥也不是</p>
        </div>
        <div class="summary">
            <p>
                没啥可总结,啥也不是就是啥也不是。
            </p>
        </div>
    </div>
</body>
</html>

section2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>第二节</title>
</head>
<body>
    <div class="section 2">
        <div class="header">
            <p>第二节,学完啥也不是</p>
        </div>
        <div class="info">
            <p>啥也不是书里面写的就是啥也不是</p>
        </div>
        <div class="summary">
            <p>
                没啥可总结,啥也不是就是啥也不是。
            </p>
        </div>
    </div>
</body>
</html>

section3.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>第三节</title>
</head>
<body>
    <div class="section 3">
        <div class="header">
            <p>第三节,学完啥也不是</p>
        </div>
        <div class="info">
            <p>啥也不是书里面写的就是啥也不是</p>
        </div>
        <div class="summary">
            <p>
                没啥可总结,啥也不是就是啥也不是。
            </p>
        </div>
    </div>
</body>
</html>

创建相关文件

创建Qt帮助项目文件(.qhp)

bmhelp.qhp

<?xml version="1.0" encoding="UTF-8"?>
<QtHelpProject version="1.0">
  <namespace>bmseven.myHelp</namespace>
  <virtualFolder>doc</virtualFolder>
  <filterSection>
    <toc>
      <section title="主页" ref="index.html">
        <section title="第一节" ref="section1.html">
        </section>
        <section title="第二节" ref="section2.html">
        </section>
        <section title="第三节" ref="section3.html">
        </section>
      </section>
    </toc>
    <keywords>
      <keyword name="section1" ref="section1.html" />
      <keyword name="section2" ref="section2.html" />
      <keyword name="section3" ref="section3.html" />
    </keywords>
    <files>
      <file>index.html</file>
      <file>section1.html</file>
      <file>section2.html</file>
      <file>section3.html</file>
    </files>
  </filterSection>
</QtHelpProject>

标签说明:

  • namespace:指qhp文件的命名空间,并且必须唯一,该命名空间在Assistant中会作为页面URL的第一部分。
  • virtualFolder:指虚拟文件夹,此文件夹并不需要创建,只用来区分文件。
  • filterSection:指过滤器,过滤器部分包含了所有的目录,索引和文件列表,可以通过设置过滤器属性,实现在Assistant中指定文档是否显示。
  • toc:指目录表(table of contents),在toc中创建了所有文档的目录,标题以及文档对应的路径。
  • keywords:用于指定所有搜索的关键字以及指定的文件。在Assistant中搜索的时候,会显示相应的页面。
  • files:包含Assistant需要引用的所有文件以及图片,可使用通配符*进行匹配。

生成Qt压缩帮助(.qch)

通过Qt控制台执行:

qhelpgenerator bmhelp.qhp -o bmhelp.qch

在这里插入图片描述

生成qch文件之后,需要注册才可以在Assistant中显示,一般有两种方式:

  1. Qt终端执行:assistant -register bmhelp.qch
  2. 使用Assistant界面进行添加:编辑->首选项->文档->Add->Apply

在这里插入图片描述

注意:其实到这一步已经可以在Qt Assistant中查看我们自己创建的帮助文档了,但是包含qt的帮助文档,那么如何只显示我们自己的文档,并且定制化Qt Assistant呢?接着往下走吧~

创建Qt帮助收集项目文件(.qhcp)

bmhelp.qhcp

<?xml version="1.0" encoding="utf-8"?>
<QHelpCollectionProject version="1.0">
  <assistant>
    <title>bmseven的帮助系统</title>
    <applicationIcon>images/awesomeface.png</applicationIcon>
    <cacheDirectory>cache/bmhelp</cacheDirectory>
    <homePage>qthelp://bmseven.bmhelp/doc/index.html</homePage>
    <startPage>qthelp://bmseven.bmhelp/doc/index.html</startPage>
    <aboutMenuText>
      <text>关于该帮助</text>
    </aboutMenuText>
    <aboutDialog>
      <file>about.txt</file>
      <icon>images/awesomeface.png</icon>
    </aboutDialog>
    <enableDocumentationManager>false</enableDocumentationManager>
    <enableAddressBar>false</enableAddressBar>
    <enableFilterFunctionality>false</enableFilterFunctionality>
  </assistant>
  <docFiles>
    <generate>
      <file>
        <input>bmhelp.qhp</input>
        <output>bmhelp.qch</output>
      </file>
    </generate>
    <register>
      <file>bmhelp.qch</file>
    </register>
  </docFiles>
</QHelpCollectionProject>

标签说明:

  • assistant:对Qt Assistant进行一些定制化的操作,包括外观与功能,如标题,图标,缓存目录,主页,起始页,about菜单文本/对话框内容/图标。
  • cacheDirectory:缓存目录,在Qt Assistant中进行全文检索时会产生缓存文件。
  • homePage/startPage:Qt Assistant的主页/起始页,这里使用的URL构成格式为:
qthelp://namespace(qhp文件中指定的)/doc(qhp文件中指定的虚拟文件夹)/*html
  • aboutMenuText/aboutDialog:包括菜单文本,帮助对话框显示内容,图标等信息。
  • docFIles:文件转换与注册。(就是之前的命令行操作集成到该文件中了)

生成Qt帮助集(.qhc)

Qt控制台执行:

qhelpgenerator bmhelp.qhcp -o bmhelp.qhc

在这里插入图片描述

运行自定义Qt Assistant

Qt控制台执行:

assistant -collectionFile bmhelp.qhc

在这里插入图片描述

这就完事儿了,自定义的部分都跟着变化了,当需要嵌入到自己的应用程序中可使用代码调用,这里不做介绍了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/597406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用exe4j和Inno Setup把jar包转成exe

使用exe4j和Inno Setup把jar包转成exe exe4j下载地址&#xff1a;https://www.ej-technologies.com/download/exe4j/version_60 Inno Setup地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Lh0JUuQgB6bkbACIx6MqdQ 提取码&#xff1a;dfox 一、exe4j将jar装车exe…

【OpenMMLab AI实战营第二期】二十分钟入门OpenMMLab笔记

OpenMMlab 主页&#xff1a;openmmlab.com 开源地址&#xff1a;https://github.com/open-mmlab 学习视频地址&#xff1a;https://www.bilibili.com/video/BV1js4y1i72P/ 概述 开源成为人工智能行业发展引擎 时间轴 theano&#xff1a;2007 Caffe&#xff1a;2013 Ten…

如何学习 WPF 详细教程

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

SPI通信以及与W2Q564(ROM)交换(读写)数据

一.SPI协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface)&#xff0c;即串行外围设备接口&#xff0c;允许芯片与外部设备以全双工、同步、串行方式通信。此接口可以被配置成主模式&#xff0c;并为外部从设备提供通信时钟(SCK)。接口还能以多主配…

uniapp(一) 之 小程序与uniapp 基础

uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到 i OS 、 Android 、 Web &#xff08; 响应式&#xff09;、 以及各种小程序&#xff08;微信 / 支付宝 / 百度 / 头条 / 飞书 /QQ/ 快手 / 钉 钉 / 淘宝&#xff09;、 …

工程测量仪器:工程安全的保障者

工程仪器是现代工程建设中必不可少的工具&#xff0c;它们可以帮助企业对工程进行监控和管理&#xff0c;从而提高工程运行效率和安全性。在当前的工程建设领域&#xff0c;安全运营已成为企业的首要任务&#xff0c;而工程仪器正是实现这个目标的重要保障之一。 渗压计广泛应用…

数据(浮点数)在内存中的存储(2)

目录 浮点数家族 浮点数类型在内存中的存储 一.为什么说整型和浮点数在内存中存储方式不同&#xff08;证明&#xff09; 二.浮点数的存储规则 浮点数在计算机内部的表示方法 1.对于M的存储和取出规则 2.对于E的存储和取出时的规则 对前面代码结果进行解释&#xff1a; …

tinkerCAD基础操作

放大尺寸&#xff01; 让我们通过调整大小来更改基本框形状&#xff01; 说明 继续执行下一步。 扩展每个块 每个“框”形状的大小都与提示匹配。 说明 通过左键单击形状来选择一个框。 这将启用形状控点。 使用每个形状底部边缘的黑色手柄在单个方向上调整形状的大小。 使…

nginx+keepalive高可用搭建方案

一、什么是nginx有什么作用 nginx是一款使用非常广泛的Web服务器&#xff0c;它可以提供高性能和可扩展性。它是由Google开发的&#xff0c;并且是Apache HTTP Server的替代品。 以下是一些nginx的主要特点&#xff1a; 轻量级&#xff1a;nginx比Apache轻量级&#xff0c;它…

ChatGPT与软件架构(1) - 快速原型

通过ChatGPT生成设计和原型代码&#xff0c;可以帮助团队快速启动项目&#xff0c;验证想法&#xff0c;提高效率。原文: ChatGPT and Software Architecture Surfing Croyde Bay Unsplash OpenAI的ChatGPT现在越来越火&#xff0c;出现了各种有趣用例。 从许多方面来看&#x…

为何溃坝事故频发,大坝安全如何保障?

随着水利水电工程的重要性日益突显&#xff0c;水库大坝安全越来越受到相关部门的重视。因为大坝的安全直接影响水利工程的功能与作用&#xff0c;因此对大坝安全的监测显得十分必要。大坝安全监测的作用是能够及时掌握大坝的运行状态&#xff0c;及时发现大坝的变形、渗漏等异…

DB-GPT数据库GPT,支持本地部署,可以在私有环境中运行!!

DB-GPT 是什么&#xff1f; 随着大模型的发布迭代&#xff0c;大模型变得越来越智能&#xff0c;在使用大模型的过程当中&#xff0c;遇到极大的数据安全与隐私挑战。在利用大模型能力的过程中我们的私密数据跟环境需要掌握自己的手里&#xff0c;完全可控&#xff0c;避免任何…

PCB钥匙串 diy

制作目标&#xff1a;type-c供电的可触摸调光LED钥匙链。 初步设计方案&#xff1a; 芯片采用触摸调光芯片&#xff0c;用于LED灯光亮度调节及开关控制的单通道触摸芯片。使用该芯片可以实现LED灯光的触摸开关控制和亮度调节。具有如下功能特点和优势&#xff1a;灯光亮度可根…

Redis+Caffeine两级缓存

1、前言 在高性能的服务架构设计中&#xff0c;缓存是一个不可或缺的环节。在实际的项目中&#xff0c;我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中&#xff0c;只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时&#xff0c;也能降低数据库的…

Sui生态域名服务SuiNS正式开放域名竞拍

Sui Name Service&#xff08;SuiNSSui Name Service&#xff08;是Sui推出的开放且分布式域名服务。SuiNS使用户可以竞拍以.sui结尾的专属域名&#xff0c;以建立链上身份。 在上线之际&#xff0c;SuiNS推出实时竞拍&#xff0c;为用户提供公平获取Sui生态专属域名的机会。若…

YUM在线升级功能

文章目录 YUM在线升级功能利用YUM进行查询、安装、升级与删除功能查询功能使用案例 安装/升级功能删除功能 YUM的配置文件修改软件源产生的问题与解决之道使用案例 YUM的软件群组功能使用案例 全系统自动升级 管理的抉择&#xff1a;RPM还是Tarball基础服务案例&#xff1a;以A…

E8-怎么监听表单里的日期控件被修改过

起因 业务部门每周六例会&#xff0c;业务部门请假的&#xff0c;如果包含星期六&#xff0c;需要老板审批。 我思路是当开始日期或结束日期被修改时&#xff0c;判断请假日期中是否包括周六&#xff0c;根据是束包含周六&#xff0c;去设置某个控件的值&#xff0c;后续步骤…

【Zero to One系列】springcloud微服务集成nacos,形成分布式系统

前期回顾&#xff1a; 【Zero to One系列】在WSL linux系统上&#xff0c;使用docker运行Mysql与Nacos 1、Nacos配置设置 先在nacos创建命名空间&#xff0c;如下图操作&#xff1a; 创建完成后&#xff0c;服务列表和配置列表&#xff0c;就都会出现如图的tab&#xff1a; 然…

南京邮电大学电工电子基础B实验八(译码与动态显示电路)

文章目录 一、 实验目的二、 主要仪器设备及软件三、 实验原理四、 实验任务与设计过程实验任务&#xff1a;设计过程&#xff1a; 五、 实验步骤与仿真结果1&#xff0e;用BCD七段显示译码器显示本人学号的后四位&#xff08;0709&#xff09;2&#xff0e;用BCD七段显示译码器…

API电商 ERP 数据管理

没有 API&#xff0c;应用之间的通信将会被扼杀&#xff1b;软件开发者将不断重写并执行相同功能的软件&#xff1b;创新的脚步将会放缓。 API 随处可见。大到一个软件系统&#xff0c;小到几行程序&#xff0c;只要具备了一定的特征&#xff0c;都可以被称作 API。那么&#…