Привет Олл! Продолжаю знакомиться с графикой Qtcreator на C++. Рисование графики

из графических примитивов внутри PaintEvent используя QPainter.

При этом методе - я правильно понял, что нет способа ДОРИСОВЫВАНИЯ графических элементов на форме с сохранением уже отрисованных? И я должен каждый раз перерисовывать все примитивы на форме после того как они исчезнут после выхода из PaintEvent? Почему скажем нельзя объявить контекст рисования в заголовке формы, а нужно его постоянно создавать заново в PaintEvent?

11 ответов

20 просмотров

виджеты? qml?

Макс Воробьев
виджеты? qml?

Видгеты, судя по вопросу

Anatoly Shirokov
Видгеты, судя по вопросу

в qml тоже можно рисовать через QQuickPaintedItem

Ты можешь перерисовывать не все, а что попало в update region

Макс Воробьев
в qml тоже можно рисовать через QQuickPaintedItem

Но тогда вопрос был бы иначе поставлен, мне кажется

в теории ты можешь через Painter нарисовать QImage и каждый раз подсовывать его QPainerу из виджета

Макс Воробьев
в теории ты можешь через Painter нарисовать QImage...

Но это ресурсы и на больших размерах немалые, чтобы нарисовать на мониторе 4k, например

Anatoly Shirokov
Но это ресурсы и на больших размерах немалые, чтоб...

разве? у QPainter не будет под капотом просто вызов какого-нибудь memcpy?

Макс Воробьев
разве? у QPainter не будет под капотом просто вызо...

Большие картинки, большие затраты. Оправдано только для статических изображений и подложки, все остальное дорисовывать небольшими спрайтами и вектором

Макс Воробьев
разве? у QPainter не будет под капотом просто вызо...

QBrush brush(image); setBrush(brush); setPen(Qt::NoPen); setBrushOrigin(QPointF(-sx, -sy)); drawRect(QRectF(0, 0, sw, sh)); restore();

Alexander-Koryagin Автор вопроса
Макс Воробьев
виджеты? qml?

Да widget и C++. В принципе метод полной перерисовки работает, хотя и жрет много процессорного времени, если обновлять часто. Вот образчик чего я делаю в AstraLinux сейчас. https://t.me/AK_Lunix_astra_questions/10

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет, у меня такой вопрос, заказчику нужно чтобы бот собирал данные о количестве просмотров на определенных постах, уже все перерыл, как то можно реализовать та...
AdmM
3
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Всем привет. Подскажите, почему не меняется значение поля при переключении сайта?
Alexander Peterikov
11
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Приветствую друзья, подскажите сколько в среднем стоит на данный момент создать тг бота который будет как магазин? Показывать ассортименты доставлять заказы и тд? Все по станд...
Eugene
3
привет, а расскажите как бэкапите свой vault raft cluster CE? я немного почитал и понял, что нужно как-то выполнять vault operator raft snapshot save backup.snapshot подсовыва...
[DBST] Dmitry Knyazev
5
Карта сайта