【问题标题】:QLabel higlight searched wordQLabel 高亮搜索词
【发布时间】:2023-03-13 06:37:01
【问题描述】:

我正在开发一个 Qt 应用程序,我正在尝试实现这个功能,如果你输入一个单词,它在 QLabel 中的所有出现都会被突出显示。我不知道该怎么做。有没有办法遍历 QLabel 中的文本并更改某些单词的背景颜色?

可以在 QTextEdit 中使用QTextEdit::ExtraSelection 来完成。但是QLabel没有这个方法。

例如,如果搜索的单词是“sed”,我想在我的 QLabel 中得到类似的内容:

【问题讨论】:

  • 你可以展示一个你想要得到的例子。
  • 嗨@eyllanesc 我添加了一个例子。我希望它能阐明我想要实现的目标。
  • @madasionka 我们的意思是代码示例,而不是屏幕截图

标签: c++ qt highlight qlabel


【解决方案1】:

您可以使用Qt rich text 为潜台词添加一些样式。您需要自己在文本字符串中搜索并插入一些 HTML。

This is my <span style="background-color:yellow">text</span>

在现有标签(已包含文本)中突出显示单词的示例:

QString searchedWord = "sed";

QString txt = lbl->text();
txt.replace(QRegExp("\\b" + searchedWord + "\\b"),
            "<span style=\"background-color:yellow\">" + searchedWord + "</span>");
lbl->setText(txt);

如果要突出显示多个单词,则需要制作更具体的 RegExp。

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2015-10-21
    • 2015-07-08
    • 2019-03-08
    • 2015-05-13
    相关资源
    最近更新 更多