我正在尝试显示内容将具有圆角的QWebView,因此我需要透明背景以隐藏原始白色角落。我正在使用我发现here
的“技巧”这对我没用,所以我添加了
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 :(得分:2)
查看此代码: https://github.com/pcmantinker/Tray-Notification-System/blob/master/traynotificationwidget.cpp
我做了一个项目,用于在与Qt兼容的所有平台上的系统托盘中显示通知小部件。
诀窍是使用没有边框且没有背景的父窗口小部件创建嵌套窗口小部件,子窗口小部件将是您可以使用QSS自定义的显示窗口小部件。
以下是一些示例图像:
Windows 7
Mac OS X Lion
Ubuntu的
我希望这有帮助。如果您有任何问题,请告诉我。
答案 1 :(得分:0)
我终于通过将Qt从 5.0.2 升级到 5.1.0 来解决了这个问题。这不是最佳解决方案,但似乎从 4.x 到 5.0.x 有很多回归。