QWidget 設定樣式表
阿新 • • 發佈:2019-02-19
QWidget直接派生類的樣式表不起作用
典型的表述(之一)是,從QWidget派生一個視窗,使用stylesheet設定背景,在designer中可以看到效果,編譯執行後,沒有背景。
該怎麼辦呢?對此Manual中專門有強調,摘錄如下:
If you subclass from QWidget, you need to provide a paintEvent for your custom QWidget as below: void CustomWidget::paintEvent(QPaintEvent *) { QStyleOption opt; opt.init(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); }
原因比較簡單,QWidget的paintEvent()是空的,而樣式表要通過paint被繪製到視窗中。
轉載:http://blog.csdn.net/dbzhang800/article/details/6875352
注: 最近嘗試了一下,發現QWidget又可以直接使用樣式表了,不知道什麼原因!