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

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

本文关键字:显示 QListWidgetItem 文本      更新时间:2023-10-16

我正在编写一个搜索算法,该算法搜索QListWidget,并根据用户在搜索栏中键入的内容返回相关匹配项。我希望任何匹配都用黄色突出显示。

例如:

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

假设我可以访问这两个短语,并且可以通过编程识别QListWidgetItem文本中需要突出显示的字母,那么我是否可以使用API或算法来实现这一点?

通常您必须创建一个自定义委托,以您想要的方式绘制文本。你可以在这里阅读。

但是,如果你想自定义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);