Загрузка данных


import sys
from PyQt6.QtWidgets import QApplication, QWidget
from PyQt6.QtGui import QPainter, QPen, QBrush, QColor
from PyQt6.QtCore import Qt

class DrawingWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Рисование в PyQt6')
        self.resize(400, 300)

    # Переопределяем событие отрисовки
    def paintEvent(self, event):
        # Создаем объект рисовальщика. Передаем self, чтобы рисовать на этом виджете
        painter = QPainter(self)
        
        # Включаем антиалиасинг (сглаживание углов)
        painter.setRenderHint(QPainter.RenderHint.Antialiasing)

        # 1. Рисуем текст
        painter.setPen(QColor(0, 0, 0))  # Черный цвет пена (контура)
        painter.drawText(20, 30, "Привет из paintEvent!")

        # 2. Настраиваем перо (перо отвечает за линии и контуры)
        pen = QPen(QColor(255, 0, 0), 3, Qt.PenStyle.SolidLine) # Красный цвет, толщина 3
        painter.setPen(pen)
        
        # Рисуем линию (x1, y1, x2, y2)
        painter.drawLine(20, 50, 200, 50)

        # 3. Настраиваем кисть (кисть отвечает за заливку фигур)
        brush = QBrush(QColor(0, 255, 0, 100), Qt.BrushStyle.SolidPattern) # Зеленый цвет с прозрачностью 100
        painter.setBrush(brush)
        
        # Синее перо для контура прямоугольника
        painter.setPen(QPen(QColor(0, 0, 255), 2))
        # Рисуем прямоугольник (x, y, width, height)
        painter.drawRect(20, 80, 150, 80)

        # 4. Рисуем круг (эллипс)
        painter.setBrush(QBrush(QColor(255, 255, 0), Qt.BrushStyle.SolidPattern)) # Желтая заливка
        painter.setPen(Qt.PenStyle.NoPen) # Без контура
        # Рисуем эллипс (x, y, width, height). Если width == height, получится круг
        painter.drawEllipse(220, 80, 100, 100)
        
        # Обязательно завершаем работу рисовальщика (хотя в Python это часто происходит автоматически при выходе из метода)
        painter.end()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = DrawingWidget()
    window.show()
    sys.argv[0] = "paint_example"
    sys.exit(app.exec())