На этом шаге мы рассмотрим назначение, форматы конструктора и основные методы этого класса.
Класс QPolygon описывает координаты вершин многоугольника. Форматы конструктора класса:
<Объект> = QPolygon()
<Объект> = QPolygon(<Список с экземплярами класса QPoint>)
<Объект> = QPolygon(<QRect>[, closed=False])
<Объект> = QPolygon(<Количество вершин>)
<Объект> = QPolygon(<QPolygon>)
Первый конструктор создает пустой объект. Заполнить объект координатами вершин можно с помощью оператора <<. Пример добавления координат вершин треугольника:
polygon = QtGui.QPolygon() polygon << QtCore.QPoint(20, 50) << QtCore.QPoint(280, 50) polygon << QtCore.QPoint(150, 280)
Во втором конструкторе указывается список с экземплярами класса QPoint, которые задают координаты отдельных вершин. Пример:
polygon = QtGui.QPolygon([QtCore.QPoint(20, 50), QtCore.QPoint(280, 50), QtCore.QPoint(150, 280)])
Третий конструктор создает многоугольник на основе экземпляра класса QRect. Если параметр closed имеет значение False, то будут созданы четыре вершины, а если значение True - то пять вершин.
В четвертом конструкторе можно указать количество вершин, а затем задать координаты путем присваивания значения по индексу:
polygon = QtGui.QPolygon(3) polygon[0] = QtCore.QPoint(20, 50) polygon[l] = QtCore.QPoint(280, 50) polygon[2] = QtCore.QPoint(150, 280)
Пятый конструктор создает новый объект на основе другого объекта.
Класс QPolygon поддерживает следующие методы (здесь приведены только основные - полный их список можно найти на странице https://doc.qt.io/qt-5/qpolygon.html):
setPoints(<Список с координатами>) setPoints(<Xl>, <Y1>[, ..., <Xn>, <Yn>])
Пример указания значений:
polygon = QtGui.QPolygon() polygon.setPoints([20,50, 280,50, 150,280])
setPoint(<Индекс>, <QPoint>) setPoint(<Индекс>, <Х>, <Y>)
Можно также задать координаты путем присваивания значения по индексу:
polygon = QtGui.QPolygon(3) polygon.setPoint(0, QtCore.QPoint(20, 50)) polygon.setPoint(1, 280, 50) polygon[2] = QtCore.QPoint(150, 280)
polygon = QtGui.QPolygon([20,50, 280,50, 150,280]) print(polygon.point(0)) # PyQt5.QtCore.QPoint(20, 50) print(polygon[l]) # PyQt5.QtCore.QPoint(280, 50)
На следующем шаге мы рассмотрим класс QFont.