Mac OS X 上的透明 QWebView

Posted

技术标签:

【中文标题】Mac OS X 上的透明 QWebView【英文标题】:Transparent QWebView on Mac OS X 【发布时间】:2013-06-24 10:52:35 【问题描述】:

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

【问题讨论】:

【参考方案1】:

查看以下代码: https://github.com/pcmantinker/Tray-Notification-System/blob/master/traynotificationwidget.cpp

不久前我做了一个项目,用于在与 Qt 兼容的所有平台上显示系统托盘中的通知小部件。

诀窍是使用没有边框和背景的父窗口小部件制作嵌套窗口小部件,而子窗口小部件将成为您可以使用 QSS 自定义的显示窗口小部件。

以下是一些外观示例图片: 视窗 7 Mac OS X Lion Ubuntu 我希望这有帮助。如果您有任何问题,请告诉我。

【讨论】:

这正是我想要的。我的意思是“通知”,但使用 html + webkit 制作。我会尝试实现你的代码并让你知道。 我希望这段代码可以适应你的目的。从理论上讲,如果您让子小部件具有透明背景,那么这种技术应该可以工作。 试过你的代码,但它也不能在 Mac OS X 上运行。也许是因为我试图让 QWebView 透明,谁知道呢。【参考方案2】:

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

【讨论】:

很高兴您能够完成这项工作。我还没有将我的项目升级到 Qt 5.x.x。稍后我会尝试看看我的托盘通知小部件是否可以在 Qt 5.x.x 中使用。

以上是关于Mac OS X 上的透明 QWebView的主要内容,如果未能解决你的问题,请参考以下文章

如何 在Mac OS X 上的 Appium 上 Run *.app 文件

Qt中的OS X透明面板?

Mac OS X 上的 GCC 标志 -Os 来自哪里?

text Mac OS X上的Git和凭据

markdown Mac OS X上的Docker Machine

PHP Mac OS X上的PHP系统加载