Раскраска QPolygonItem - PullRequest
       16

Раскраска QPolygonItem

1 голос
/ 04 апреля 2019

Как я могу покрасить свой предмет QPolygonF?Я создал треугольник, но не знаю, как его заполнить определенным цветом.

Я пытался найти класс в библиотеке Qt, но не нашел ни одного.Вот код, где я создаю треугольник и добавляю его в сцену.Я пытался использовать функцию setBrush (), но QPolygonF не имеет этого класса ..

triangle = QtGui.QPolygonF()
triangle.append(QtCore.QPointF(0,550)) # Bottom-left
triangle.append(QtCore.QPointF(50, 550)) # Bottom-right
triangle.append(QtCore.QPointF(25, 525)) # Tip
self.scene.addPolygon(triangle)

1 Ответ

0 голосов
/ 04 апреля 2019

Когда вы используете метод addPolygon, он возвращает QGraphicsPolygonItem, и этот GraphicsPolygonItem наследуется от QAbstractGraphicsShapeItem, и этот класс дает возможность изменить цвет заливки с помощью метода setBrush () и цвета границы с помощью setPen ():

from PyQt5 import QtCore, QtGui, QtWidgets


class GraphicsView(QtWidgets.QGraphicsView):
    def __init__(self, parent=None):
        super(GraphicsView, self).__init__(parent)
        self.setScene(QtWidgets.QGraphicsScene(self))
        triangle = QtGui.QPolygonF()
        triangle.append(QtCore.QPointF(0, 550))  # Bottom-left
        triangle.append(QtCore.QPointF(50, 550))  # Bottom-right
        triangle.append(QtCore.QPointF(25, 525))  # Tip
        triangle_item = self.scene().addPolygon(triangle)
        triangle_item.setBrush(QtGui.QBrush(QtGui.QColor("salmon")))
        triangle_item.setPen(QtGui.QPen(QtGui.QColor("gray")))


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = GraphicsView()
    w.resize(320, 240)
    w.show()
    sys.exit(app.exec_())

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...