На этом шаге мы рассмотрим небольшой пример использования изученных конструкций.
Приведем небольшой пример использования некоторых из перечисленных на предыдущих шагах конструкций.
Приведенная ниже программа строит линию и закрашенную окружность (рисунок 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() ,
self.graphicView = QGraphicsView(self.scene, self) ,
self.graphicView.setGeometry(0, 0, self.width, self.height) .
Само рисование реализовано в методе plot(). Здесь сначала выбраны цвета, которые будут применены при рисовании, затем созданы объекты фигур, в которых устанавливаются необходимые цвета. По завершению установки всех параметров объекты эллипла и линии добавляются к сцене.
На следующем шаге мы рассмотрим изображение.