1. 程式人生 > >QWidget 設定樣式表

QWidget 設定樣式表

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又可以直接使用樣式表了,不知道什麼原因!