У меня есть сцена QML, подобная этой:
import QtQuick 2.12
import QtQuick.Shapes 1.12
Rectangle {
width: 600
height: 600
color: "black"
Shape {
anchors.fill: parent
ShapePath {
startX: 300
startY: 300
strokeColor: "red"
PathLine { x: 300; y: 300 }
PathLine { x: 800; y: 300 }
PathLine { x: 800; y: 800 }
PathLine { x: 300; y: 300 }
}
}
}
Вышеупомянутый dr aws треугольник, который проходит за ограничивающий прямоугольник его родительского элемента, поэтому он обрезается, как показано ниже:
Вместо этого я бы хотел, чтобы треугольник "обернулся" вокруг правого края своего родителя, чтобы правая половина треугольника отображалась в левая половина окна Есть ли хороший способ сделать это в Qt Quick? Я исследовал использование Transform
объектов для корректировки координат дочернего элемента Shape
, но похоже, что оно ограничено только выполнением линейных преобразований.
Мне также было интересно, есть ли способ визуализации элемента в текстуру / FBO, а затем поместите это в сцену, используя текстурные координаты, чтобы соответствующим образом обернуть отображение дочернего элемента. Однако для меня важна еще одна вещь - поддерживать способность мыши взаимодействовать с дочерним элементом (например, если я добавлю в него MouseArea
). Похоже, что если я буду играть в игры с рендерером, чтобы обернуть координаты, то слой обработки событий не узнает об этом.