2010-12-22 116 views

回答

0

可能。它可能是一個地方持有人,即。開發人員打算覆蓋它來添加一個新功能,但沒有得到解決,並留下了上述內容。另外,基類中paintEvent的默認行爲是什麼?它是PE_Widget還是別的?

+0

好吧,我進入了QWidget :: paintEvent和drawPrimitive函數。事實上,沒有一個實際上做任何事情。有些情況下,drawPrimitive(PE_Widget ...)會執行某些操作,但當`this`直接來自QWidget時,不會。我猜想爲什麼有人認爲他們應該這樣做的奧祕可能仍然是一個謎。 – 2010-12-23 17:18:18

0

如果你從QWidget派生出來,你不應該這樣做。忘記你曾經看到過的代碼:)

1

有人想寫這段代碼有兩個主要原因。

1)他們想繪製/寫東西或在小部件的背景中使用圖像。在那種情況下,他們必須實現paintEvent方法。

2)他們希望利用Qt樣式表,例如在窗口小部件上設置透明背景。樣式表使用QLabel或QPushButton等內置類可以很好地工作。但是,如果某人創建了自己的類,它是從QWidget派生的,則Stylesheets將不起作用,除非重新實現paintEvent並正確寫出您提到的那些行。