我想为样式表启用我自己的小部件类,我不是在谈论setStyleSheet(qss)
qss 样式表中的选择器。据了解,我必须将命名空间中的“::”替换为“--”。
在这里(自定义小部件的 Qt 样式表)我发现了一个类似的问题,但它已经超过 4 年了。根据答案,我有一些详细的问题:
a)来自https://stackoverflow.com/a/8817908/356726的已发布方法是否paintEvent
仍然有效(Qt5.6/5.7)
void CustomWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
b)据说在同一个线程(https://stackoverflow.com/a/22094319/356726)中,我不需要覆盖paintEvent
。好的,引导我:b1)无论如何覆盖它是否有害paintEvent
,即使使用QFrame
?b2) 其他基类是什么,例如QTableView
?是什么让QFrame
担任这个特殊角色?
c)有没有人找到关于该主题的官方 Qt 文档。很好的代码,但它来自哪里?(在这里)老实说,我不明白它的作用。
- 编辑 -
丹尼尔在这里指出了那个神奇paintEvent
片段的来源(段落)。有趣的是,同样的(“仅支持 ..”)被说成 for ,这可能意味着我也必须在那里使用该片段。我不明白为什么他们不默认将该片段添加到of中。QWidget
QDialog
paintEvent
QWidget