首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使项目视图在Qt中呈现富(html)文本

如何使项目视图在Qt中呈现富(html)文本
EN

Stack Overflow用户
提问于 2009-12-24 11:41:10
回答 5查看 29.1K关注 0票数 59

假设我的模型包含Qt::DisplayRole具有以下字符串的项

代码语言:javascript
运行
复制
blah-blah some text other blah

我希望QTreeView (实际上是任何项目视图)将其呈现为富文本。相反,默认情况下,项视图将其呈现为纯文本。如何实现所需的渲染?

实际上,这是一个搜索结果模型。用户输入一个文本,针对该文本搜索一些文档,并向用户显示搜索结果,其中被搜索的单词应该比周围的文本更粗体。

EN

Stack Overflow用户

发布于 2011-11-07 20:41:26

这个是用PySide写的。我将QPainter传递给QLabel并让它自己绘制,而不是进行大量的自定义绘制。突出显示从其他答案借用的代码。

代码语言:javascript
运行
复制
from PySide import QtGui

class TaskDelegate(QtGui.QItemDelegate):
    #https://doc.qt.io/archives/qt-4.7/qitemdelegate.html#drawDisplay
    #https://doc.qt.io/archives/qt-4.7/qwidget.html#render
    def drawDisplay(self, painter, option, rect, text):
        label = QtGui.QLabel(text)

        if option.state & QtGui.QStyle.State_Selected:
            p = option.palette
            p.setColor(QtGui.QPalette.WindowText, p.color(QtGui.QPalette.Active, QtGui.QPalette.HighlightedText))

            label.setPalette(p)

        label.render(painter, rect.topLeft(), renderFlags=QtGui.QWidget.DrawChildren)
票数 5
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1956542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档