gpt4 book ai didi

python - 如何为绘制的对象(例如drawLine)制作透明背景?

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:09 24 4
gpt4 key购买 nike

我想要制作一个应用程序,其中仅绘制的对象(例如drawLine)可见,而不是背景。

因此,如果用户打开应用程序,他/她可以绘制形状,并且只能看到绘制的形状。

我是 pyside 新手,但我发现了只有小部件可见的示例,但我认为这不适用于此问题。

a = QPoint(22, 22)
b = QPoint(444, 444)

def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setGeometry(300, 300, 350, 350)
self.setWindowTitle('Draw circles')

def paintEvent(self, event):
paint = QPainter()
paint.begin(self)
paint.drawLine(self.a, self.b)
paint.end()

上面的程序只是在不透明背景上绘制线条的示例。不知道如何从这个变成透明背景。

最佳答案

您必须启用标志Qt::WA_TranslucentBackground:

from PySide import QtCore, QtGui


class Widget(QtGui.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)

def paintEvent(self, event):
a = QtCore.QPoint(22, 22)
b = QtCore.QPoint(444, 444)

painter = QtGui.QPainter(self)
pen = QtGui.QPen(QtGui.QColor("red"))
pen.setWidth(5)
painter.setPen(pen)
painter.drawLine(a, b)


if __name__ == "__main__":
import sys

app = QtGui.QApplication(sys.argv)
w = Widget()
w.resize(640, 480)
w.show()
sys.exit(app.exec_())

enter image description here

正如上面所说的@Heike看来在windows中需要添加:

self.setWindowFlags(QtCore.Qt.FramelessWindowHint) 

关于python - 如何为绘制的对象(例如drawLine)制作透明背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56434458/

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