PySide2无法检测到合成(X11和Compton)-没有透明度

时间:2019-02-02 14:34:32

标签: python linux qt pyside x11

我的脚本使用PySide2在Python中使用Qt。该脚本要求透明(可以在窗口后面看到桌面)。

我将Ubuntu与X11,LXQT和Compton结合使用。透明度适用于常规窗口,例如浏览器和文本编辑器,但不适用于我的python脚本。

透明度是通过background: url(bg_with_transparency.png)设置的,但我也使用RGBA颜色和w.setWindowOpacity(0.5)进行了测试,但没有成功。

设置了以下标志:(窗口也必须是点击式的)

w.setWindowFlags(w.windowFlags() |
    QtCore.Qt.WindowTransparentForInput |
    QtCore.Qt.X11BypassWindowManagerHint |
    QtCore.Qt.WindowStaysOnTopHint |
    QtCore.Qt.FramelessWindowHint)
w.setAttribute(QtCore.Qt.WA_TranslucentBackground)
w.setAttribute(QtCore.Qt.WA_NoSystemBackground, True)

在没有WA_TranslucentBackgroundWA_NoSystemBackground的情况下,图像显示为黑色背景,而不是透明背景。当我启用这些标志而不进行合成时,窗口显示为纯黑色。启用Compton后,该窗口根本不会显示(没有错误),并且QtX11Extras.QX11Info.isCompositingManagerRunning()返回false。

如何解决此问题?我更喜欢使用PySide2和Python,但是只要脚本可用于Ubuntu并具有以下功能,我就可以使用其他GUI或编程语言:

  • 透明度(背景是带有rgba的PNG)
  • 点击后到达功能
  • 始终在最前面

谢谢。

0 个答案:

没有答案