gpt4 book ai didi

python - pyqt:具有透明背景的小部件

转载 作者:行者123 更新时间:2023-12-04 14:20:38 25 4
gpt4 key购买 nike

我想在 pyqt 中绘制一个透明背景矩形。以下代码满足我在 Mac 中的需求:

import sys
from PyQt4 import QtGui, QtCore, Qt

class ZoomWidget(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
#self.setAttribute(Qt.Qt.WA_NoSystemBackground)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setStyleSheet("background-color:transparent;")
self.setGeometry(100,100,100,100)
self.show()

def paintEvent(self, e=None):
qp = QtGui.QPainter()
qp.begin(self)
qp.setPen( QtGui.QPen(QtCore.Qt.gray,3,QtCore.Qt.DashDotLine ) )
qp.drawRect(0,0,self.rect().width()-1, self.rect().height()-1)
qp.end()

if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = ZoomWidget()
sys.exit(app.exec_())

但是,当我在 Linux 中使用此代码时,它给了我一个黑色背景矩形。我该怎么做才能给它透明背景?谢谢。

最佳答案

您是否尝试设置 ZoomWidget 的父级?

...
def __init__(self, *args, **kwargs):
QtGui.QWidget.__init__(self, *args, **kwargs)
...
app = QtGui.QApplication(sys.argv)
dial = QtGui.QDialog()
ex = ZoomWidget(parent=dial)
dial.show()
...

关于python - pyqt:具有透明背景的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26536832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com