我的桌面Qt应用已应用大样式表。它适用于我正在使用的QApplication派生类:
this->ApplyStyleSheet(":/qss/default.qss");
它适用于我定义和使用的所有QWidget对象。 (使用* .ui文件)。
当我将* .ui文件中的一个QWidgets用于我自己的QWidget派生类之一时,我的问题就开始了。
当我的小部件是QWidget时,以下工作并更改了背景图片:
QWidget#myWidget {
background: transparent;
background-image: url(:/images/bg_img.png);
background-repeat: repeat-x;
}
当我将元素提升为自定义QWidget派生类并更改为:
时QMyDerivedClass#myWidget {
background: transparent;
background-image: url(:/images/bg_img.png);
background-repeat: repeat-x;
}
我不再看到我的背景图片了。显然我错过了一些东西。它是什么...我希望你们中的一个知道。
答案 0 :(得分:9)
我的坏。发布此信息以便有类似问题的人可以找到解决方案:
我没有将“paintEvent”添加到我的自定义类中。 (在这种情况下,除了它使得样式表符合之外什么也不做)。
void CustomWidget::paintEvent (QPaintEvent *)
{
QStyleOption opt;
opt.init (this);
QPainter p (this);
style ()->drawPrimitive (QStyle::PE_Widget, &opt, &p, this);
}