2011-09-19 54 views
1

我的Widget奇怪懸停只有透明度失去效果聲明:的Qt:一個按鈕

setAttribute(Qt::WA_NoSystemBackground); 

在它的paintEvent,我設置:

painter.setOpacity(0.75); 

這使我對項目的能力,PNG格式上其整個背景具有一定的透明度。這很好。

問題:我在窗口小部件的頂部添加了一個帶有透明png的QPushButton。按鈕圖像的不透明部分(從Qt CSS派生)顯示正確,並且透明區域保留在我的小部件的繪製背景中,這已經有些透明。當我在圖像上徘徊時,我的css指示我的QPushButton更改圖像。當發生這種情況時,按鈕圖像的不透明部分會正確顯示,但對於透明區域,就好像我自己的小部件正在重新繪製背景圖像一樣,只是完全不透明。

這隻發生在Windows上。在OS X上工作正常。我想知道在這方面是否有Windows中的錯誤,以及是否有解決方法。

+0

我認爲這更好的屬於諾基亞的錯誤報告。他們對他們的反應相當迅速。 – ypnos

回答

1

事實證明,雖然

setAttribute(Qt::WA_NoSystemBackground); 

是OS X不夠好......

在Windows下你還應該添加:

setAttribute(Qt::WA_TranslucentBackground); 

這照顧它。問題已解決。