【问题标题】:How to paint according to qStylesheet in QStyledItemDelegateQStyledItemDelegate中如何根据qStylesheet进行绘制
【发布时间】:2014-10-28 21:46:14
【问题描述】:

我想继承 QStyledItemDelegate 并使用 QStyleSheets 对其进行修改。我不知道如何让它工作。我尝试了很多小时来显示任何东西,看起来就像我在 qss 中定义的那样。原则上它必须工作,因为当我调用paint(QPainter*, const QStyleOptionViewItem &, const QModelIndex&) 的基类实现时,列表项看起来像已定义。那么,现在如何在委托中应用样式表?

【问题讨论】:

    标签: c++ qt listview qt5 qstyleditemdelegate


    【解决方案1】:

    一切都必须通过 QStyle 来完成。例如。在 QListView 中绘制背景:

    QStyle *style = option.widget->style();
    style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter, option.widget);
    

    还有很多其他的 drawXYZ(..) 函数。见QStyle docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多