Рисование, pyqt

Просьба разобратся начал изучать графику ,а именно рисование в pyqt и не понамею некоторых вещеи , Qpainter как понял это класс,инструмент для рисования но как и где он рисует не совсем понятно , вроде как он рисует на виджетах , но как не совсем понятно, чтобы рисовать на виджете как я понял или может не правильно понял ,надо создать класс который наследует от виджета на котором хотим рисовать и переопределить метод paintEvent который есть у виджетов и который рисует виджет и перерисовывает при изменении и масштабировании , и задать в этом методе код рисунка которыи мы хотим рисовать на виджете да? Просто взять и прямо рисовать на виджете нелзя ? не используя его метод paintevent? Нету виджета или специальнои области для рисования на котором можно прямо рисовать с помощю qpainter без метода paint event? ,Например как в ткинтер там есть виджт канвас на котором прямо рисуешь или в язке delphi там тож был компонент image на котором тож прямо рисуешь?

Не помню как в qt, но обычно да, потому что если просто взять и нарисовать один раз, то при следующем обновлении окна оно сотрется. Надо в событии каждый раз рисовать всё, что сейчас нужно (возможно потребуется хранить какое-то состояние, в зависимости от задачи, например, массив добавленных пользователем точек).

QImage?

Возможно точно не припомню

А почему Qt, почему ты не рисуешь в HTML5 на Canvas?
И чего вообще в итоге ты хочешь добиться?

Я про Qt.
На QImage вроде можно без события рисовать, но не уверен. Скорее всего просто создав QPainter для него.
QPicture еще есть.

https://doc.qt.io/qt-6/qpaintdevice.html

Inherited By: QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, and QWidget

Т.е. QPainter может рисовать на всём этом (теоретически).

Прочитав документацию на QImage и на QPicture я увидел, что первый хранит точки, а второй класс хранит графические команды. То есть, рисовать на QImage это нормально (было в древности).

Ещё многообещающе выглядит QPixmap (именно в него преобразовывают QImage перед отображением на QLabel):

The QPixmap class is an off-screen image representation that can be used as a paint device.

Является ли QImage виджетом, и как его после рисования отобразить? Ищем на stackoverflow:

вот здесь пишут, что лучше использовать QGraphicsView, о чём я уже́ писал ранее.

Вот статья на тему того, как сделать свой виджет, который будет отображать заранее нарисованную картинку:
https://pro-prof.com/forums/topic/qt_scaledpixmap
(чтобы после использовать этот widget вместо QLabel).

#include <QWidget>
class QScaledPixmap : public QWidget {
public:
  QScaledPixmap(QWidget *parent = 0);
  void setScaledPixmap(const QPixmap &pixmap);
protected:
  void paintEvent(QPaintEvent *event);
private:
  QPixmap m_pixmap;
};

Я просто изучаю паитон ,я сщяс не делаю каких то проектов. После некоторых основ решил изучить графику,рисование в python ,смотрел рисование в тк интер вроде все там понятнее и проще , но я хотел изучить рисование в pyqt он боле серезный и продвинутая библиотке создание интерфеиса,
И ищучая рисование в этои библиотеке там везде описывался класс qpainer которое рисет на виджетах я не совсем понял прицпы рисование с помощю этого инструмента и хочу разобратся понять а дале видео будет.
И изучая эту тему столкнулся с graphics view, и Graphicsscene, Qpixmap , QGraphicsItem но тож не не совсем понял ,эти классы поврхность для рисование из pyqt в котором можно рисовать отображать? И есле да то Qpainter может рисовать на них?

А про HTML5 и canvas не слышал но тоже посмотрю. А HTML5 и канвас тоже часть pyqt?

HTML5 и канвас тоже часть pyqt?

Нет, это отдельная технология. Их можно совместить, но можно и использовать обе сами-по-себе.