簡體   English   中英

我可以自定義自己的畫筆風格嗎?

[英]Can I customize own brushstyle?

這里有一些用於 Qbrush 的預定義 QbrushStyle,我想知道是否有機會按照自己的意願自定義樣式。 謝謝你。

在此處輸入圖像描述

您必須創建一個表示圖案的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM