2015-04-08 61 views
3

我希望以下代碼來顯示外主窗口內的黑色小區域:樣式表嵌套定製窗口小部件不施加(PyQt4的)

class Canvas(QWidget): 
    pass 

app = QApplication(sys.argv) 
outer = QWidget() 
w = Canvas(outer) 
w.setStyleSheet("background-color: black") 
outer.show() 

但看起來沒有應用樣式表:整個外窗是灰色。 但是,如果wQWidget,則代碼將按預期工作。當直接顯示Canvas實例(無親本)的樣式表被正確應用,以及:

w = Canvas() 
w.setStyleSheet("background-color: black") 
w.show() 

此代碼顯示一個黑窗口。 我已經在C++中用Qt 4.8.6試過了,並且樣式表也適用於派生自QWidget的嵌套窗口小部件。

我錯過了什麼? 我在Ubuntu 14.04下使用python 2.7.6,Qt 4.8.6和PyQt 4.10.4。

回答

5

一個QWidget子類將忽略默認情況下(由於性能原因)的樣式表。

試試這個:

w = Canvas(outer) 
w.setAttribute(QtCore.Qt.WA_StyledBackground) 
w.setStyleSheet("background-color: black")