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

时间:2015-02-11 21:40:43

标签: c++ css qt qt5

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

例如:

如果用户在搜索栏中输入“ilt”,我想突出显示QListWidgetItem中的相应字母,文字为“Write F ilt er”(为方便起见,用粗体加粗)

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

1 个答案:

答案 0 :(得分:1)

通常,您必须创建一个自定义委托,以您希望的方式绘制文本。你可以阅读它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);