2013-06-24 29 views
4

我試圖顯示QWebView的內容將有圓角,所以我需要透明背景,以便隱藏原來的白色角落。我使用的「絕招」我發現here在Mac OS X上的透明QWebView

這對我沒有工作,所以我加

this->view.setAttribute(Qt::WA_TranslucentBackground); 

,現在它的工作原理是應該如何在Linux(Ubuntu的)和Windows,但不Mac OS X. Mac OS X只是不斷顯示黑色的角落。我試着設置樣式像這樣

this->view.setStyleSheet("background: transparent;"); 

this->view.setStyleSheet("background-color: none"); 

this->view.setStyleSheet("QWidget { background: transparent; }"); 

但毫無效果。我有什麼辦法可以做到這一點?我正在使用Qt 5.0.2。

回答

0

我終於通過將Qt從5.0.2改爲5.1.0來解決了這個問題。這不是最佳解決方案,但似乎有很多從4.x5.0.x的迴歸。

+1

很高興你能夠得到這個工作。我還沒有將我的項目升級到Qt 5.x.x.我將嘗試查看我的托盤通知窗口小部件是否可以在Qt 5.x.x中使用。 –

2

看看這個代碼: https://github.com/pcmantinker/Tray-Notification-System/blob/master/traynotificationwidget.cpp

我做了一個項目,前陣子在整個使用Qt兼容所有平臺上的系統托盤顯示通知小部件。

訣竅是使用父窗口小部件製作嵌套窗口小部件,該窗口小部件沒有邊框,也沒有背景,子窗口小部件將成爲您可以使用QSS自定義的顯示窗口小部件。

下面是它的外觀有些樣品圖片:
Windows 7的
Windows 7
的Mac OS X Lion的
Mac OS X Lion
Ubuntu的
Ubuntu
我希望這有助於。如果您有任何問題,請告訴我。

+0

這正是我所要做的。我的意思是「通知」,但用html + webkit製作。我會盡力實現你的代碼並讓你知道。 – stepanbujnak

+1

我希望這段代碼可以適合你的目的。從理論上講,如果你讓子部件具有透明背景,這種技術應該可以工作。 –

+0

嘗試了您的代碼,但它在Mac OS X上也無法使用。也許這是因爲我試圖讓QWebView透明,誰知道。 – stepanbujnak