Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
sidsukana |
14.1.2013, 14:59
Сообщение
#11
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 158 Регистрация: 23.12.2010 Из: Челябинск Пользователь №: 2296 Спасибо сказали: 10 раз(а) Репутация: 2
|
Проблему решил, методом, который предложил Алексей
|
|
|
|
|
iReset |
14.1.2013, 16:03
Сообщение
#12
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2
|
Цитата(sidsukana @ 14.1.2013, 15:59) Link Проблему решил, методом, который предложил Алексей Тогда мне расскажите, а то я не в непонятках.Анимация была, но виджет после пропадания как бы оставался, хотя и был невидим, и надо было его убрать? Или анимации вообще не было? |
|
|
|
|
Алексей1153 |
14.1.2013, 22:00
Сообщение
#13
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
iReset, тут такая штука: есть окно, которое надо скрыть (или даже замочить вовсе) ; есть также объект класса анимации. Их создали, настроили , запустили. И забыли про них, анимация в отдельном потоке идёт (или, во всяком случае - асинхронно, так как GUI во время анимации доступен юзеру)
далее всё происходит автоматом: -Анимация сделала своё плавное дело, вызвала слот завершения, -В слоте скрылось/удалилось окно -Удалился объект класса анимации |
|
|
|
|
iReset |
15.1.2013, 5:24
Сообщение
#14
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2
|
Цитата(Алексей1153 @ 14.1.2013, 23:00) Link iReset, тут такая штука: есть окно, которое надо скрыть (или даже замочить вовсе) ; есть также объект класса анимации. Их создали, настроили , запустили. И забыли про них, анимация в отдельном потоке идёт (или, во всяком случае - асинхронно, так как GUI во время анимации доступен юзеру) далее всё происходит автоматом: -Анимация сделала своё плавное дело, вызвала слот завершения, -В слоте скрылось/удалилось окно -Удалился объект класса анимации Как всё работает, я знаю. Я не понял, что НЕ работало. В своём первом посте sidsukana написал, что виджет исчезает, но сразу, без анимации. Как сигнал finished смог помочь появиться плавной анимации, вот этого я не пойму. |
|
|
|
|
Алексей1153 |
15.1.2013, 6:01
Сообщение
#15
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
iReset, всё зависит от его кода, который мы не видим. Предположу, что это у него делается в closeEvent или showEvent с вызовом родительской виртуалки. Поэтому окно скрывалось сразу, а анимацию просто не было видно
|
|
|
|
|
sidsukana |
15.1.2013, 6:25
Сообщение
#16
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 158 Регистрация: 23.12.2010 Из: Челябинск Пользователь №: 2296 Спасибо сказали: 10 раз(а) Репутация: 2
|
При появлении я запускал анимацию - start() и сразу же запускал отображение окна show(). Поэтому происходила как бы такая штука, что запускаем анимацию, а так как окно уже стало видимым, анимация была видна пользователю.
Если сделать наоборот, запустить сразу hide() после запуска анимации, то окно становится невидимым для пользователя, и соответственно анимация тоже. Поэтому надо вначале отыграть анимацию, а потом уже окончательно убить/скрыть окно по ее завершении. Надеюсь понятно изложил |
|
|
|
|
iReset |
15.1.2013, 13:03
Сообщение
#17
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2
|
Цитата(sidsukana @ 15.1.2013, 7:25) Link При появлении я запускал анимацию - start() и сразу же запускал отображение окна show(). Поэтому происходила как бы такая штука, что запускаем анимацию, а так как окно уже стало видимым, анимация была видна пользователю. Если сделать наоборот, запустить сразу hide() после запуска анимации, то окно становится невидимым для пользователя, и соответственно анимация тоже. Поэтому надо вначале отыграть анимацию, а потом уже окончательно убить/скрыть окно по ее завершении. Надеюсь понятно изложил Да, теперь понятно, я отвечал не на тот вопрос. Если честно, то упустил, что виджет исчезает сразу. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 25.12.2025, 13:33 |