[英]Can I customize own brushstyle?
您必須創建一個表示圖案的 QPixmap 並將其設置為 QBrush 的紋理:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
def create_texture():
pixmap = QtGui.QPixmap(QtCore.QSize(8, 8))
pixmap.fill(QtGui.QColor("red"))
painter = QtGui.QPainter(pixmap)
painter.setBrush(QtGui.QBrush(QtGui.QColor("blue")))
painter.drawEllipse(pixmap.rect())
painter.end()
return pixmap
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
texture = create_texture()
brush = QtGui.QBrush()
brush.setTexture(texture)
scene = QtWidgets.QGraphicsScene()
view = QtWidgets.QGraphicsView(scene)
it = scene.addRect(QtCore.QRectF(0, 0, 400, 400))
it.setBrush(brush)
view.resize(640, 480)
view.show()
sys.exit(app.exec_())
或 QImage:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
def create_texture():
image = QtGui.QImage(QtCore.QSize(8, 8), QtGui.QImage.Format_ARGB32)
image.fill(QtGui.QColor("red"))
painter = QtGui.QPainter(image)
painter.setBrush(QtGui.QBrush(QtGui.QColor("blue")))
painter.drawEllipse(image.rect())
painter.end()
return image
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
texture = create_texture()
brush = QtGui.QBrush()
brush.setTextureImage(texture)
scene = QtWidgets.QGraphicsScene()
view = QtWidgets.QGraphicsView(scene)
it = scene.addRect(QtCore.QRectF(0, 0, 400, 400))
it.setBrush(brush)
view.resize(640, 480)
view.show()
sys.exit(app.exec_())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.