Плавное изменение размеров главного окна в QML



  • Всем привет.

    Ребят, мне надо по нажатию на кнопку плавно сменить размер главного окна.
    Сейчас главное окно имеет размер 278х148, а по нажатию на кнопку, требуется чтобы окно плавно изменил свой размер на требуемый, то-есть на 900х450

    Даже нету никаких идей, как можно было бы это сделать. Может кто из вас знает или есть какие-то идеи?

    Буду премного благодарен



  • Если окно без декораций, то его можно растянуть сразу, сделав новые области прозрачными, а потом плавно растягивать на них содержимое



  • @Konstantin-Tokarev said in Плавное изменение размеров главного окна в QML:

    Если окно без декораций, то его можно растянуть сразу, сделав новые области прозрачными, а потом плавно растягивать на них содержимое

    Верно. Окно без декораций. Но вот как так сделать-то? Вообще идей никаких нету



  • Как сделать прозрачное окно? Тупо залить фон прозрачным цветом, а реальное содержимое окна положить, например, в прямоугольник (уже с нужным фоном), и растягивать его с анимацией при изменении размеров окна. При сжатии наоборот, сначала с анимацией уменьшаешь размер прямоугольника, потом меняешь размер окна



  • @Konstantin-Tokarev, стоп. А что значит "без декораций"? Окно у меня с Windows бордюром и его же кнопками



  • "Без декораций" значит без https://en.wikipedia.org/wiki/Window_decoration, т.е. Qt::FramelessWindowHint

    Если декорации есть, то средствами Qt задача не решается, только window manager может анимировать изменение размеров своих декораций



  • Т.е. можно конечно достичь какого-то эффекта, пошагово меняя размер окна, но вряд ли это будет выглядеть плавно



  • @Konstantin-Tokarev, ясно. Значит чтобы сделать плавное увеличение окна по клику на кнопку, нужно убрать декорации, весь контент поместить в какой-то родительский Rectangle{}, а фон окна сделать color: "transparent". Верно всё написал?



  • Все верно



  • @Konstantin-Tokarev, хорошо тогда. Весь вопрос заключается в том, как написать такой механизм, а именно: увеличение этого псевдо окна? Даже не увеличение, а закрашивание. Потому что когда "окно" станет таким каким мне надо, там появятся новые элементы. Совсем другие



  • Тогда можно заблюрить или зафейдить в какой-то цвет при движении к середине пути, а потом обратно. Но это уже вопрос дизайна


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.