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

标签 python qt pyqt transparent qwidget

示例代码为 here它像那样运行,图像看起来像:

clock .

主要策略是使用QBrush加载背景图片,背景图片有数字等内容,图片原本是透明背景。

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

最佳答案

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

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

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

记得在设置标志后调用show() 方法。在这里引用文档:

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

关于按位运算符:https://wiki.python.org/moin/BitwiseOperators

希望有用。

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

关于python - 如何使基于 QWidget 的窗口具有透明背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497209/

相关文章:

python 异步请求

c++ - Qt creator,错误信息

QTableView "ResizeToContents"启用排序后列太宽

python - 如何根据单击的按钮选择行编辑

python - QFileDialog 打开两个对话框

python - 无法更改 PySide.QtGui 对象的 __class__

Python 切片运算符 : Negative start combined with Positive stop

qt4 - 如何自动换行 QTreeWidgetItem

python - 如何替换 Pandas 数据框字符串列中的文本?

c++ - 为什么QWidget升级后就消失了?