我試圖將子窗口小部件添加到Qt5中的窗口小部件。 問題是,父窗口小部件呈現的內容不爲Qt所知,因此透明度無法正常工作。使用自定義QPainter呈現QWidget
要解決這個問題,我需要使用自定義QPainter來呈現小部件。
在Qt4中,我可以通過使用屬性WA_PaintOutsidePaintEvent並以另一種方法呈現小部件來實現。
但是,在Qt5中,這個屬性消失了。
我已經試過什麼:
- 創建一個QWidget並重寫的paintEvent方法。
- 沒有真正的工作(沒有畫任何東西),但也許這只是一個小小的錯誤。據我瞭解,這個事件也不會讓小部件自己做渲染,這是我想要阻止的。
- 創建的QGraphicsView和QGraphicsScene和小工具加入到QGraphicsScene
- 繪製控件和透明度的工作。事件(鼠標&鍵盤),但是,不起作用。
請顯示您的代碼 – eyllanesc
我真的不知道這是怎麼用的。我的代碼目前只是很多實驗。 如果有幫助,我可以用更多的代碼充實這些例子,但考慮到我目前不知道自己在做什麼,我懷疑這會有所幫助。 它歸結爲我需要能夠以某種方式將子窗口小部件繪製到QImage中,並且他們仍然需要能夠獲取鼠標和鍵盤事件。 –
然後我試着先學習和理解基礎知識,然後用我剛剛經歷的知識。我不太瞭解你的問題,例如,這意味着「問題在於父部件渲染的內容不爲Qt所知」。它顯示了你想要理解你的圖像,如果你打算把這個小部件放在另一個小部件使用的佈局中,改變如果你想改變顏色,小部件的形式,你必須重寫方法paintEvent 。 – eyllanesc