如何突出显示 QListWidgetItem 文本中的特定字母?

How do I highlight specific letters in the text of a QListWidgetItem?

我正在编写一种搜索算法,该算法根据用户在搜索栏中键入的内容搜索 QListWidget 和 returns 相关匹配项。我希望所有匹配项都以淡黄色突出显示。

例如:

如果用户在搜索栏中键入 "ilt",我想突出显示 QListWidgetItem 中的相应字母,文本为 "Write Filter"(为方便起见,加粗)。

假设我可以访问这两个短语并且可以通过编程方式识别我需要突出显示 QListWidgetItem 文本中的哪些字母,是否有我可以用来执行此操作的 API 或算法?

通常您必须创建一个自定义委托来按照您想要的方式绘制文本。你可以阅读它 here.

但是如果你想定制一个 QListWidget 你可以简单地使用 QListWidget::setItemWidget 方法:

QListWidget *list = new QListWidget;

QListWidgetItem *item = new QListWidgetItem(list);

QLabel *label = new QLabel("my <span style=\"color: red\">red</span> text");
list->setItemWidget(item, label);