|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2019, 01:03 | #1 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 29
|
QPropertyAnimation
Сделал анимацию отображения и закрытия для виджета. При открытии все отлично работает, но когда закрываю анимация не проигрывается, но убрав hide все будет работать нормально. Очень странно приоритет работает. Как можно пофиксить?
Код:
|
09.11.2019, 04:44 | #2 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 29
|
Сделал ;З. Просто отказался от hide и show)
|
09.11.2019, 07:40 | #3 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
TSwallow, когда порядок инструкций такой
Код:
последовательность нужна такая Код:
Вариант 1 (сложный). Это можно сделать не выходя из MainWindow:: on_Settings_clicked () при помощи QEventLoop. После запуска анимации в цикле вызываем обработку сообщений в течение времени, достаточного для проигрывания анимации (либо по ещё какому-то определённому признаку). Затем скрываем виджет и выходим из цикла. Вариант 2 (простой). Сигнал анимации finished() соединить с hide() виджета (это при условии, что анимация действительно закончится, ведь из-за какой-то ошибки в логике этого может и не быть) Вариант 3 (простой). Статическая функция QTimer::singleShot - на время, необходимое для отыгрывания анимации. Соединить со слотом hide виджета. Цикл не нужен - вызвали и забыли ----------- ещё обрати внимание на удаление анимации. Если создаёшь динамически, то в start лучше указать QAbstractAnimation:: DeleteWhenStopped, иначе каждую анимацию будет утечка Последний раз редактировалось Алексей1153; 09.11.2019 в 07:46. |
09.11.2019, 09:53 | #4 |
Пользователь
Регистрация: 13.11.2018
Сообщений: 29
|
Спасибо за информацию)
|