crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
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) *
Проблему решил, методом, который предложил Алексей :)
Тогда мне расскажите, а то я не в непонятках.
Анимация была, но виджет после пропадания как бы оставался, хотя и был невидим, и надо было его убрать?
Или анимации вообще не было?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 14.1.2013, 22:00
Сообщение #13


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 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) *
iReset, тут такая штука: есть окно, которое надо скрыть (или даже замочить вовсе) ; есть также объект класса анимации. Их создали, настроили , запустили. И забыли про них, анимация в отдельном потоке идёт (или, во всяком случае - асинхронно, так как GUI во время анимации доступен юзеру)

далее всё происходит автоматом:
-Анимация сделала своё плавное дело, вызвала слот завершения,
-В слоте скрылось/удалилось окно
-Удалился объект класса анимации

Как всё работает, я знаю. Я не понял, что НЕ работало. В своём первом посте sidsukana написал, что виджет исчезает, но сразу, без анимации. Как сигнал finished смог помочь появиться плавной анимации, вот этого я не пойму.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 15.1.2013, 6:01
Сообщение #15


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 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) *
При появлении я запускал анимацию - start() и сразу же запускал отображение окна show(). Поэтому происходила как бы такая штука, что запускаем анимацию, а так как окно уже стало видимым, анимация была видна пользователю.
Если сделать наоборот, запустить сразу hide() после запуска анимации, то окно становится невидимым для пользователя, и соответственно анимация тоже. Поэтому надо вначале отыграть анимацию, а потом уже окончательно убить/скрыть окно по ее завершении. Надеюсь понятно изложил :)

Да, теперь понятно, я отвечал не на тот вопрос. Если честно, то упустил, что виджет исчезает сразу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.5.2025, 21:54