4

我正在尝试显示 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。

4

2 回答 2

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 狮子
Ubuntu
Ubuntu
我希望这会有所帮助。如果您有任何问题,请告诉我。

于 2013-06-26T12:38:51.253 回答
0

我终于通过将 Qt 从5.0.2升级到5.1.0解决了这个问题。这不是最佳解决方案,但似乎从4.x5.0.x有很多回归。

于 2013-06-28T19:08:27.403 回答