Как рисовать в соответствии с qStylesheet в QStyledItemDelegate

Я хочу создать подкласс QStyledItemDelegate и изменить его с помощью QStyleSheets. Я понятия не имею, как заставить его работать. Я пробовал много часов, чтобы просто отобразить что-нибудь, выглядя так, как я определил в qss. В принципе, это должно работать, потому что когда я вызываю реализацию базового класса paint(QPainter*, const QStyleOptionViewItem &, const QModelIndex&), элементы списка выглядят как определенные. Итак, как мне теперь применить таблицу стилей в делегате?


person ManuelSchneid3r    schedule 28.10.2014    source источник


Ответы (1)


Все должно быть сделано через QStyle. Например. в QListView для рисования фона:

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

Есть много других функций drawXYZ(..). См. документацию QStyle.

person ManuelSchneid3r    schedule 03.11.2014