如何使基于QWidget的窗口具有透明背景? - python

示例代码为here,它像这样运行,图像如下所示:

主要策略是使用QBrush加载具有数字和其他内容的背景图像,该图片最初具有透明背景。

但是,如何使QWidget窗口具有透明背景却困扰着我。

python大神给出的解决方案

在PyQt中,您需要使用按位OR运算符|将标志添加到所有现有的窗口标志中,以使其起作用:

window.setWindowFlags(window.windowFlags() | QtCore.Qt.FramelessWindowHint)

然后做
window.setAttribute(QtCore.Qt.WA_TranslucentBackground)

记住在设置标志后调用show()方法。在此处引用文档:

注意:此函数在更改窗口的标志时调用setParent(),从而导致小部件被隐藏。您必须调用show()以使小部件再次可见..

在按位运算符上:https://wiki.python.org/moin/BitwiseOperators

希望这是有用的。

编辑:删除了一些不正确的信息,感谢@ekhumoro从下面的评论。