QStyledItemDelegate中如何根据qStylesheet进行绘制
Posted
技术标签:
【中文标题】QStyledItemDelegate中如何根据qStylesheet进行绘制【英文标题】:How to paint according to qStylesheet in QStyledItemDelegate 【发布时间】:2014-10-28 21:46:14 【问题描述】:我想继承 QStyledItemDelegate
并使用 QStyleSheets 对其进行修改。我不知道如何让它工作。我尝试了很多小时来显示任何东西,看起来就像我在 qss 中定义的那样。原则上它必须工作,因为当我调用paint(QPainter*, const QStyleOptionViewItem &, const QModelIndex&)
的基类实现时,列表项看起来像已定义。那么,现在如何在委托中应用样式表?
【问题讨论】:
【参考方案1】:一切都必须通过 QStyle 来完成。例如。在 QListView 中绘制背景:
QStyle *style = option.widget->style();
style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter, option.widget);
还有很多其他的 drawXYZ(..) 函数。见QStyle docs。
【讨论】:
以上是关于QStyledItemDelegate中如何根据qStylesheet进行绘制的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 QStyledItemDelegate 在 QTreeWidget 中拥有不同高度的 QTreeWidgetItems?
QStyledItemDelegate - updateEditorGeometry 如何工作?
如何在 QStyledItemDelegate 中绘制整行的背景?
重新实现 QStyledItemDelegate::paint - 如何获取子元素坐标?