欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

Qt QTextEdit文本高亮

最后更新 2021-03-16 05:13:49   阅读量 1569

Table of Contents

  • 1. 需求
  • 2. 实现

QTextEdit支持HTML展示,这样实现高亮就很简单了。

需求

QTextEdit展示了一些信息,增加一个搜索框,搜索时实时高亮出搜索的内容并滚动到最近搜索到的地方。

实现

连接textChanged信号,在onSearchChanged中实现,如果搜索文本为空就显示原文本内容,不为空就将其搜索的关键字替换成a标签,name为anchor是为了滚动到指定位置,然后将其拼装成html文档格式,增加css样式(红色高亮),这样就实现我们需要的功能。

注意这里如果不用a标签,高亮是可以的,但是滚动到anchor可能有问题。

void CacheWidget::onSearchChanged(const QString &text)
{
    if (text.isEmpty()) {
        setText(text_);
    } else {
        QString html = text_;
        html.replace(text, QString("<a name=\"anchor\">%1</a>").arg(text));
        ui.teContent->setHtml(QString("<html><head><style>a{color:red;font-weight:bold;}</style></head><body>%1</body></html>").arg(html));
        ui.teContent->scrollToAnchor("anchor");
    }
}
(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – 博客文章增加TOC
上一篇 – gorm写入数据库后时间差8小时

  1. Qt
  2. C/C++

toningto@outlook.com

标签云

Design Shell Web Windows Qt Database React Bug Node.js Android Mac Go ChatGPT Java Others Tips Javascript IOS Python MQ Linux C/C++ Tools Mobile Boost Life MongoDB Product

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2