【Qt编程】基于Qt的词典开发系列<十五>html特殊字符及正则表达式
1、html特殊字符的显示
我们知道html语言和C语言一样也有一些特殊字符,它们是不能正常显示的,必须经过转义,在网上可以查到如何显示这些字符,如下图所示:
<font color=blue>程序例</font>#include<stdio.h>
然后就文本后缀名改为.html后,用浏览器打开,显示如下:
我们从上图可以发现include后面没有显示,但是当我们在文本中写入:
<font color=blue>程序例</font>#include<stdio.h> 或 <font color=blue>程序例</font>#include<stdio.h>
时就能正常显示了。显示结果如下图:
我们知道Qt能够支持html语言,但是我在编写可以查询c语言函数(肯定有#include后面<>的特殊字符的显示问题)的时候发现使用上面的方法仍然不能显示特殊字符,后来灵机一动,就决定用全角<>来代替半角<>。这样就不会当成是特殊字符了,就可以正常显示了。半角和全角的转换只需要点击下图中的第3个按钮:
<font color=blue>程序例</font>:<br>#include <span style="color:#ff0000;"><</span>stdio.h <span style="color:#ff0000;">></span><br>#include <span style="color:#ff0000;"><</span> stdlib.h <span style="color:#ff0000;">></span><br>int main(void)<br>
#include "widget.h"
#include "ui_widget.h"
#include<QString>
#include<QRegExp>
#include<QDebug>
#include<QLabel>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QString str="<font color=blue>程序例</font>:<br>#include <stdio.h ><br>#include < stdlib.h ><br>int main(void)<br>";
ui->label->setText(str); //由于Qt也能识别html格式,而< >是html的特殊字符,因此不处理的话,就会出现显示出错
QRegExp rx("#include (<(.*.h )>)");//正则表达式里的括号是为了获取匹配的内容
rx.setMinimal(true);//非贪婪模式
int pos=0;//从字符串的开始部分
for(int i=0;i<str.size();i++)
{
pos=rx.indexIn(str,0);//得到匹配字符串的位置
while(pos!=-1)//匹配成功
{
str.replace(rx.cap(1),"<"+rx.cap(2)+">");//这里是进行替换,如果不明白rx.cap是什么,可以qDebug显示内容
pos=rx.indexIn(str,pos+rx.matchedLength());//从当前位置,继续往后进行匹配
}
}
ui->label1->setText(str);
}
Widget::~Widget()
{
delete ui;
}
程序运行结果如下:
下面放一张查单词软件用到的特殊字符显示和使用正则表达式后的截图:
注意:我使用的平台为QT5,如果转移到Qt4上有错的话,可以反向参考http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5
基于Qt的词典开发系列
- 词典框架设计及成品展示
- 本地词典的设计
- 开始菜单的设计
- 无边框窗口的缩放与拖动
- 无边框窗口的拖动
- 界面美化设计
- 调用网络API
- 用户登录及API调用的实现
- JSON数据解析
- 国际音标的显示
- 系统托盘的显示
- 调用讲述人
- 音频播放
- 自动补全功能
- HTML特殊字符及正则表达式
- 后序
原文:http://blog.csdn.net/tengweitw/article/details/38734201
作者:nineheadedbird
【Qt编程】基于Qt的词典开发系列<十五>html特殊字符及正则表达式的更多相关文章
- 【Qt编程】基于Qt的词典开发系列<十>--国际音标的显示
在年前的一篇文章中,我提到要学习Qt.于是在这学期看了一个月的qt.现在大致对qt有了一些了解.但是现在导师又把我调到了android应用开发平台,所以说qt的学习要搁置了.本打算这学期做一个单词查询 ...
- 【Qt编程】基于Qt的词典开发系列<十二>调用讲述人
我们知道,win7系统自带有讲述人,即可以机器读出当前内容,具体可以将电脑锁定,然后点击左下角的按钮即可.之前在用Matlab写扫雷游戏的时候,也曾经调用过讲述人来进行游戏的语音提示.具体的Matla ...
- 【Qt编程】基于Qt的词典开发系列<十四>自动补全功能
最近写了一个查单词的类似有道词典的软件,里面就有一个自动补全功能(即当你输入一个字母时,就会出现几个候选项).这个自动补全功能十分常见,百度搜索关键词时就会出现.不过它们这些补全功能都是与你输入的进行 ...
- BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
XML Schema中的命名空间前缀限定包括对元素(Element)或属性(Attribute)的限定,即常见的如 “<ns0:root>...</ns0:root>”之类的格 ...
- arcgis api for js入门开发系列十五台风轨迹
上一篇实现了demo的地图最近设施点路径分析,本篇新增台风轨迹,截图如下: 下面简单介绍相关知识点: 警戒线 警戒线坐标集合: var lineArr24=[[127,34],[127,21],[11 ...
- arcgis api 3.x for js 入门开发系列十五台风轨迹
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- 【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计
我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示: 由于是本人是通信专业,因此加入了华为通信词典.电子工程词典,又由于我喜爱编程,也加 ...
- 【Qt编程】基于Qt的词典开发系列--后序
从去年八月份到现在,总算完成了词典的编写以及相关技术文档的编辑工作.从整个过程来说,文档的编写比程序的实现耗费的时间更多.基于Qt的词典开发系列文章,大致包含了在编写词典软件过程中遇到的技术重点与难点 ...
- 【Qt编程】基于Qt的词典开发系列<六>--界面美化设计
本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口 ...
随机推荐
- 安卓如何快速更新SDK
打开SDK Manager,点击tools->options打开,如图: Proxy Setting如下设置: HTTP Proxy server:mirrors.neusoft.edu.cn ...
- Struts 1 之配置文件
web.xml中配置Struts的入口Servlet--ActionServlet,ActionServlet不负责任何的业务处理,它只是查找Action名单,找到path属性与URL属性一致的Act ...
- sublime text3空格和tab的显示
最近在使用sublime text3修改shell文件时,明明看着相同的文件,对比却说不一样.最后发现是空格和tab惹的祸. 1.显示空格和tab: 在Preferences→Key Bindings ...
- linu下C语言之BMP图片操作编程(中)
http://blog.csdn.net/morixinguan/article/details/50719472 关于BMP图的介绍之前已经说过了,最近要用到,又要重新开始学习. 现在实现一个让bm ...
- Quick-Cocos2d-X 捋一捋框架流程
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=535 一直比较关注Quick L ...
- eclipse代码恢复(开发程序代码恢复)
如果误操作,让本地代码丢失了不用怕,Eclipse local history可以恢复. 误删除文件后,直接ctrl+z可以恢复. 拉去代码覆盖了本地,也可以一个一个或者整体进行恢复:http://b ...
- ROS_Kinetic_17 使用V-Rep3.3.1(vrep_ros_bridge)
ROS_Kinetic_17 使用V-Rep3.3.1(vrep_ros_bridge) https://github.com/lagadic/vrep_ros_bridge v-rep也有官网也有教 ...
- 【翻译】Ext JS最新技巧——2015-8-11
原文:Top Support Tips Seth Lemmons:使用棒极了的Awesome Font Ext JS 6附带了一个新的海卫一主题,可以使用Font Awesome字体作为背景图像的图标 ...
- Weblogic10 集群配置
1.预备知识 什么是Domain和Server Domain Domain是WebLogic Server实例的基本管理单元.所谓Domain就是,由配置为Administrator Serve ...
- HTML5哪点事
HTML5哪点事 [引子] 微信圈里,很多朋友时常讲起HTML5,是未来很重要的一项技术,小老虎则更关注HTML5具体包含哪些技术内容. [技术内容] 1.说到底就是传统:html + css + j ...