![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Elfinit |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Нужно отображать gif-анимацию поверх картинки. Пробовал идеи из выложенной здесь проги (один из последних исходников Qt) - не получается. Анимация не рисуется поверх элементов управления.
На скрине правее прогресс бара расположен спиннер. Так вот нужно, чтобы он был поверх картинки. (которая ещё правее)
Эскизы прикрепленных изображений
Прикрепленные изображения
![]() |
|
|
![]() |
ufna |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
а как пытаешься рисовать? покажи код
|
|
|
Elfinit |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Сейчас гифка рисуется тупо в связке QLabel+QMovie. Пытался рисовать в paintEvent через painter.drawImage.
В конструкторе виджета создавал QImageReader reader, который каждые 200 миллисекунд читал QImage img, который и рисовался в paintEvent. (Код я из проги выкинул, поэтому на словах. Вообще же он полностью был содран отсюда: http://www.crossplatform.ru/node/887 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#5
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Elfinit,
давай код с кодом примера сравнивать. ![]() может действительно в новой версии Qt что то изменили во вред, хотя очень сомневаюсь. |
|
|
igor_bogomolov |
![]()
Сообщение
#6
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
muzhik.zip ( 24,15 килобайт ) Кол-во скачиваний: 270
![]() Elfinit, Проверил у себя с приведённым выше рисунком. Все работает. Хотя, на мой взгляд, это не самый лучший выход из ситуации, Лучше всё таки использовать прозрачный виджет. Почитай это , там SABROG все отлично описал, и соответствующие ссылочки приложил ))) |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Elfinit |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Проверил ещё раз, теперь анимация вообще пропала...
Итак, куски кода. Из конструктора виджета:
eventFilter, updateSpinner:
childsRecursive:
Сообщение отредактировал Elfinit - 22.9.2009, 22:06 |
|
|
igor_bogomolov |
![]()
Сообщение
#9
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Не знаю как средствами qt узнать количество кадров в gif, но у тебя их точно не 10. Если указать больше чем есть, работать не будет. Я для эксперимента с твоим рисунком ставил 8. )))
|
|
|
Elfinit |
![]()
Сообщение
#10
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Не знаю как средствами qt узнать количество кадров в gif, но у тебя их точно не 10. Если указать больше чем есть, работать не будет. Я для эксперимента с твоим рисунком ставил 8. ))) Не помогло. А ничего, что я childRecursive вызываю для лэйбла только? Если вызывать для всего виджета, прога элегантно падает. Для parent вызывать тоже не интересно, тем более на нём несколько виджетов с аналогичной логикой. |
|
|
igor_bogomolov |
![]()
Сообщение
#11
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Если тебе не нужно рисовать поверх нескольких виджетов одновременно, а только поверх лейбла, задача сильно упрощается. Никакой childRecursive тебе не нужен (прочитай еще раз внимательно статью по ссылке выше).
Создай собственный виджет, примерно так .h
.cpp
main.cpp
Прикрепляю рабочий примерчик, дальше сам для себя допилишь )))
Прикрепленные файлы
|
|
|
Elfinit |
![]()
Сообщение
#12
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
О, всё заработало)) Спасибо)
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 16.7.2025, 7:17 |