Russian Qt Forum

Qt => Qt Quick => Тема начата: alekseymenkov от Сентябрь 13, 2018, 16:13



Название: Rotation + OpacityMask
Отправлено: alekseymenkov от Сентябрь 13, 2018, 16:13
Доброго дня!

У меня есть изображение - круг. Мне нужно его повернуть динамически, и обрезать через OpacityMask до полукруга.
(https://habrastorage.org/webt/5p/fq/mq/5pfqmqi5yp5wwgayerljdie5klu.png)

Делаю следующим образом:
Код:
                Image {
                    id: neutralAndPositiveFilling
                    visible: false
                    transformOrigin: Item.Center
                    rotation: -(180 - chanceBar.positiveChance * 180 / 100)
                    source: "image://rip/ui/NewDiscussionWindow/bar_positive_and_neutral.png"
                }

                Image {

                    id: chanceBarMask
                    visible: false
                    source: "image://rip/ui/NewDiscussionWindow/bar_mask.png"
                }

                OpacityMask {
                    anchors.fill: neutralAndPositiveFilling
                    source: neutralAndPositiveFilling
                    maskSource: chanceBarMask
                }

Изменение свойства rotation происходит, но изображение остается статичным, не поворачивается. Видимо из-за того, что источник для маски visible = false.

Как заставить это работать?


Название: Re: Rotation + OpacityMask
Отправлено: kuzulis от Сентябрь 13, 2018, 22:47
А не проще ли сделать в фотошопе сразу зеленый полукруг, поместить его над бежевым кругом и вращать его как душе угодно?


Название: Re: Rotation + OpacityMask
Отправлено: navrocky от Сентябрь 18, 2018, 22:10
Оберни вращаемый объект в Item и этот Item используй в качестве маски