Шаг 225.
Библиотека PyQt5.
Графическая сцена. Простой текст

    На этом шаге мы рассмотрим вывод в окно простого текста.

    Класс 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. Результат работы приложения

    На следующем шаге мы рассмотрим форматированный текст.




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