На этом шаге мы рассмотрим вывод в окно простого текста.
Класс QGraphicsSimpleTextItem описывает простой текст. Иерархия наследования:
QGraphicsItem - QAbstractGraphicsShapeItem - QGraphicsSimpleTextItem
Форматы конструктора класса:
<Объект> = QGraphicsSimpleTextItem([parent=None]) <Объект> = QGraphicsSimpleTextItem(<Текст>[, parent=None ])
В параметре parent можно указать ссылку на родительский объект. Класс QGraphicsSimpleTextItem наследует все методы из базовых классов и поддерживает следующие методы (здесь приведены только основные - полный их список доступен на странице https://doc.qt.io/qt-5/qgraphicssimpletextitem.html):
В заключение этого шага приведем небольшую программу, отображающую картинку и текст в окне, используя объекты классов QGraphicsPixmapItem и QGraphicsSimpleTextItem. Приведенные комментарии дают предстваление о том, как это реализовано.
from PyQt5 import QtGui from PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsScene, QGraphicsView, QGraphicsItem, QGraphicsPixmapItem, QGraphicsSimpleTextItem from PyQt5.QtGui import QPixmap, QPainter 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 = 400 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): # Создание объекта QPixmap picture = QPixmap('IMG2.jpg') # Создание "пустого" объекта QGraphicsPixmapItem image = QGraphicsPixmapItem() # Задание изображения в объект QGraphicsPixmapItem image.setPixmap(picture) # Позиция объекта QGraphicsPixmapItem image.setOffset(0, 0) # Добавление объекта QGraphicsPixmapItem на сцену self.scene.addItem(image) # Создание объекта QGraphicsSimpleTextItem text = QGraphicsSimpleTextItem('Пример текста') # Задание позиции текста text.setX(0) text.setY(200) # Добавление текста на сцену self.scene.addItem(text) App = QApplication(sys.argv) window = Window() window.show() # Демонстрация окна window.plot() # Построение и перерисовка окна sys.exit(App.exec())
Результат работы приложения изображен на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим форматированный текст.