答案 0 :(得分:4)
在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的评论。
答案 1 :(得分:1)
如果您需要一个具有透明背景的窗口(基于QWidget),您可以根据我的知识实现这一点,如果您还使窗口无框架。
以下示例执行此操作。重要的是设置窗口标记FramelessWindowHint
和设置属性WA_TranslucentBackground
。
from PySide import QtCore, QtGui
app = QtGui.QApplication([])
window = QtGui.QWidget()
window.setWindowFlags(QtCore.Qt.FramelessWindowHint)
window.setAttribute(QtCore.Qt.WA_TranslucentBackground)
window.show()
layout = QtGui.QVBoxLayout(window)
button = QtGui.QPushButton('Exit')
button.clicked.connect(app.quit)
layout.addWidget(button)
app.exec_()
仅显示独立按钮。