着色QPolygonItem

时间:2019-04-04 14:15:31

标签: python pyqt pyqt5

如何为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 :(得分:0)

当您使用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