Шаг 223.
Библиотека PyQt5.
Графическая сцена. Пример построения изображений

    На этом шаге мы рассмотрим небольшой пример использования изученных конструкций.

    Приведем небольшой пример использования некоторых из перечисленных на предыдущих шагах конструкций.

    Приведенная ниже программа строит линию и закрашенную окружность (рисунок 1).


Рис.1. Пример работы приложения

    Текст программы.

from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsScene, 
    QGraphicsView, QGraphicsItem, QGraphicsLineItem, QGraphicsEllipseItem
from PyQt5.QtGui import QPen, QBrush
from PyQt5.Qt import Qt
 
import sys
 
class Window(QMainWindow):
    def __init__(self):
        super().__init__()
 
        self.title = "Графические объекты PyQt5"
        self.top = 200
        self.left = 500
        self.width = 400
        self.height = 300
  
        self.setWindowTitle(self.title)
        # Задание местоположения и размера окна
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.scene = QGraphicsScene()
        # Создание инструмента для отрисовки графической сцены
        self.graphicView = QGraphicsView(self.scene, self)
        # Задание местоположения и размера графической сцены
        self.graphicView.setGeometry(0, 0, self.width, self.height)
  
    def plot(self):
        # Задание цветов
        color = Qt.green
        color1 = Qt.red
        color2 = Qt.blue
        # Создание эллипса
        ellipse = QGraphicsEllipseItem(50, 50, 200, 200)
        # Определение цвета границы и заполнения
        ellipse.setPen(QPen(color1))
        ellipse.setBrush(color)
        # Добавление эллипса к сцене
        self.scene.addItem(ellipse)
        # Создание линии
        line = QGraphicsLineItem(30, 30, 250, 30)
        # Определение ее цвета
        line.setPen(QPen(color2))
        # Добавление линии к сцене
        self.scene.addItem(line)
 
 
App = QApplication(sys.argv)
window = Window()
window.show() # Демонстрация окна
window.plot() # Построение и перерисовка окна

sys.exit(App.exec())
Архив с файлом можно взять здесь.

    Приведем еще несколько комментариев к тексту программы.

    Главное окно приложения - это объект класса Window(). При создании этого объекта выполняется метод __init__(), где, помимо определения параметров окна, задающих его местоположение, размеры и заголовок, создается графическая сцена

  self.scene = QGraphicsScene()     ,
где будут располагаться графические элементы, а также объект класса QGraphicsView()
  self.graphicView = QGraphicsView(self.scene, self)    ,
который будет отвечать за ее отрисовку. После создания определяется его местоположение и размеры
  self.graphicView.setGeometry(0, 0, self.width, self.height)    .

    Само рисование реализовано в методе plot(). Здесь сначала выбраны цвета, которые будут применены при рисовании, затем созданы объекты фигур, в которых устанавливаются необходимые цвета. По завершению установки всех параметров объекты эллипла и линии добавляются к сцене.

    На следующем шаге мы рассмотрим изображение.




Предыдущий шаг Содержание Следующий шаг