I want to enable my own widget class for stylesheets, whereat I am not talking about setStyleSheet(qss)
, but selectors in a qss stylesheet. It is understood that I have to replace the "::" with "--" in namespaces.
Here ( Qt Stylesheet for custom widget ) I have found a similar question, but it is > 4 years old. Based on the answer I have some detailed questions:
a) Is the published approach with an overridden paintEvent
still valid (Qt5.6/5.7), from https://stackoverflow.com/a/8817908/356726
void CustomWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
b) In the same thread ( https://stackoverflow.com/a/22094319/356726 ) it is said, I do not need to override paintEvent
. Ok, leads me to:
b1) is it harmful to override paintEvent
anyway, even with QFrame
?
b2) What is with other base classes, e.g. QTableView
? What makes QFrame
having this particular role?
c) has anybody found an official Qt documentation on that topic. Nice code in a, but where does it come from? (here) Honestly I do not understand what it does.
-- Edit --
Daniel has pointed out the source of that magical paintEvent
snippet here (QWidget
paragraph). Interesting that the same ("supports only ..") is said for QDialog
, which could mean I have to use the snippet there as well. I fail to understand why they do not add that snippet to the paintEvent
of QWidget
as per default.