Я пытаюсь создать синоптическую панель в Qt-QML (для рабочего стола). Интерфейс должен использоваться с фиксированным разрешением, поэтому я предпочитаю использовать PNG-изображения для разных графических элементов для создания схемы (трубы, трубы-кривой, трубы-t, насоса, клапана и т. Д.). Теперь проблема заключается в том, как изменить цвет заливки различных компонентов: я бы хотел, чтобы этот пользователь мог выбрать цвет (в реальном случае есть другая жидкость, которую можно использовать), но я не могу найти, как это сделать в QML. Я думал использовать мои компоненты PNG в качестве фона, а затем рисовать прямоугольник, замаскированный маской SVG. Но в Интернете я могу найти только qt-компоненты «MaskedItem», недоступные для рабочего стола. Мне интересно, нет ли способа перенести мой PNG образ SVG с одним цветом (черный и прозрачный), а затем изменить его свойство в QML. У кого-нибудь есть идеи? Большое спасибо.Необходимо изменить цвет изображения SVG в QML
(EDIT лучше объяснить)
Проблема гораздо сложнее, чем я могу быть в состоянии объяснить. Я создал несколько компонентов QML со специфическими свойствами, каждый компонент имеет фоновое изображение (PNG) с прозрачностью. Теперь мне нужно заполнить определенную область изображения PNG, используя переменный цвет «x», когда основной QML находится в определенном состоянии (установленном приложением Qt). Моя проблема: как заполнить область PNG/SVG переменным цветом, от QML? Мне нужно поместить свое «фоновое» изображение, затем применить над ним компонент «Прямоугольник» (цвет «x») и, наконец, поместить маску на этот прямоугольник, чтобы определить, какая область этого должна быть видимой, сохраняя фон (нижнее изображение ранее). Надеюсь, теперь я объяснил себя лучше.
(РЕДАКТИРОВАТЬ раствор) После того, как много часов, я не смог найти какие-либо другие решения, чем при использовании QT-компонентов MaskedItem. Ниже я опубликовал решение, которое использовал. Спасибо вам всем за интерес.
Это может быть достигнуто очень эффективно с использованием эффекта шейдера: http://stackoverflow.com/questions/39903639/how-to-apply-opacity-mask-to-a-qml-item?noredirect11&lq=1 – dtech