如何在 PyQt 中对 qwebview 应用掩码?

Posted

技术标签:

【中文标题】如何在 PyQt 中对 qwebview 应用掩码?【英文标题】:How to apply a mask to a qwebview in PyQt? 【发布时间】:2018-03-03 19:42:40 【问题描述】:

我正在尝试在 PyQt4 或 PySide 或 PySide2 中使用 QWebView.mask(),将透明 QWebView 的透明像素转换为窗口掩码,就像具有自定义形状的无框窗口一样,但不起作用,窗口是半透明的.

webview = QtWebKit.QWebView()
mask = webview.mask()
webview.setMask(mask)

为什么这不起作用,存在哪些替代方案以及我如何解决这个问题?

注意:我也在尝试使用 QWidget,但仍然无法正常工作。

widget = QtGui.QWidget()
mask = widget.mask()
widget.setMask(mask)

类似这样的:Using an alpha transparent mask on a QWidget?

但对于 PyQt4,而不是 Qt,因为我正在编写脚本...

【问题讨论】:

【参考方案1】:

也许是这个?

webview.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)

widget.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)

这两个都适用,希望对你有帮助...

【讨论】:

它适用于禁用鼠标事件,但不能通过窗口点击! :( 嗯,对不起,也许你可以结合 QPixmap,grabWidget 我该怎么做?

以上是关于如何在 PyQt 中对 qwebview 应用掩码?的主要内容,如果未能解决你的问题,请参考以下文章

初始评估JavaScript()调用后的PyQt4 QWebview错误

PyQt4.QtWebKit:加载停止时 QWebPage QWebView 设置超时

如何将 QWebView 放置在 QTabWidget 中?

PyQt4 和 QtWebKit - 如何自动滚动视图?

PyQt4 QWebView 外部资源内容

PyQt5 QWebview 刷新问题