2

QStyledItemDelegateQStyleSheetsでサブクラス化して変更したい。それを機能させる方法の手がかりがありません。qssで定義したように、何かを表示するだけで何時間も試しました。リスト項目の基本クラスの実装を呼び出すと、paint(QPainter*, const QStyleOptionViewItem &, const QModelIndex&)定義されているように見えるため、原則的には機能する必要があります。さて、デリゲートにスタイルシートを適用するにはどうすればよいでしょうか?

4

1 に答える 1

2

すべては QStyle を通じて行う必要があります。たとえば、QListView で背景を描画するには:

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

他にも多くの drawXYZ(..) 関数があります。QStyle ドキュメントを参照してください。

于 2014-11-03T17:32:09.313 に答える