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

例如:

如果用户在搜索栏中键入“ilt”,我想突出显示QListWidgetItem中的相应字母,并使用文本“Write F ilt er”(为方便起见,将其选中)。

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

最佳答案

通常,您必须创建一个自定义委托(delegate),以所需的方式绘制文本。您可以阅读有关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);

关于c++ - 如何突出显示QListWidgetItem文本中的特定字母?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28465039/

10-13 08:33