Size: a a a

2021 May 24

MD

Mr DXon in Qt
Добрый день.
Подскажите, как правильно отследить окончание отрисовки картинки на QLabel.

Делаю так:
lbl->setPixmap(img1);
Следом делаю так:
lbl->setPixmap(img2);

В результате вижу только img2.

Если последнюю строку закомментить, то img1 выводится нормально.
источник

AM

Anton Mihaylov in Qt
а какова цель? Окончание отрисовки произойдет по окончанию ф-ции paint в QLabel
источник

MD

Mr DXon in Qt
Цель показать картинки одну за другой
источник

MD

Mr DXon in Qt
Первая - превьюшка, вторая - оригинал с бОльшим разрешением
источник

MD

Mr DXon in Qt
По факту - отрендеренная Poppler'ом страница pdf-файла
источник

MD

Mr DXon in Qt
Пока вторая картинка будет рендериться, первая будет висеть перед глазами
источник

m

mefest in Qt
А кто рендерит тебе ее?
источник

m

mefest in Qt
Показываешь первую картинку и подписываешься на сигнал когда вторая картинка уже готова будет
источник

MD

Mr DXon in Qt
Генерит картинку Poppler и пихает в qImage.
Потом делаю  lbl.setPixmap(QPixmap::fromImage(img1))
источник

MD

Mr DXon in Qt
Собственно, вопрос - как отловить окончание процессов, запущенных в setPixmap,т.е. когда label закончит отрисовку?
источник

M

Mr.Mait in Qt
Унаследуешь лейбл, переопределяешь setPixmap, там вызываешь метод родителя, а потом даешь свой сигнал типа finish
источник

MD

Mr DXon in Qt
Вариант кстати..  Попробую, спасибо
источник

M

Mr.Mait in Qt
Не, плохая идея. В исходниках после setPixmap вызывается базовый update от qwidget, а там  QCoreApplication::postEvent . Т.е. событие рисования не сразу выполняется :(
источник

RP

Roman Prokopiv in Qt
всем привет! нужен совет, есть репозиторий на котором расположено несколько взаимосвязанних сервисов/клиентов и нужно сделать для них всех единственную документацию при помощи Doxygen. Вопрос в том, как лучше ето сделать, чтоб на документации все сервиса и клиенты можно было различать и их классы были максимально независиммые друг от друга + был поиск единственный для всех сервисов и клиентов (пока остановился на групировании при помощи модулей, но ето довольно плохая идея, так как нужно изменить все файлы, чтоб указать принадлежность к тому или инному модулю да и классы с таким же названием накладаються друг на друга)
источник

AM

Anton Mihaylov in Qt
Между ними какой то стандартный интервал или как только отрисовалась первая, сразу отрисовать вторую?
источник

AM

Anton Mihaylov in Qt
Я бы в этом случае рисовал на своем виджете, и грубо говоря в ф-ции update проверял была ли на предыдущем вызове отрисована первая картинка, если она уже рисовалась, рисуем вторую
источник

R

Roman in Qt
Переслано от Roman
я то ли в монитор туплю, то ли что то рил не так ... Данные рил есть, и я их для отладки вывел в текстовый файл.
А вот на представлении их нет(((
источник

R

Roman in Qt
Переслано от Roman
Я отладку еще более упростил - сделал двумерный массив [6][3] (6 заметок всего у меня).
И заполнял. В случаи успеха, я бы еще раз попробовал что-нибудь норм подыскать, какой-нибудь контейнер норм, в противном случае сделал бы динамический двумерный массив.
Но ... ля почему? data не надо же вызывать напрямую, разве нет?
источник

MD

Mr DXon in Qt
Не засекал, скорее всего время разное, т.к. масштаб изображения может быть разным (задает пользователь)
источник

AM

Anton Mihaylov in Qt
тут вопрос требований )))) как нужно сделать?
источник