Могу ли я обернуть координаты Qt Quick Item? - PullRequest
0 голосов
/ 11 января 2020

У меня есть сцена 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 треугольник, который проходит за ограничивающий прямоугольник его родительского элемента, поэтому он обрезается, как показано ниже:

enter image description here

Вместо этого я бы хотел, чтобы треугольник "обернулся" вокруг правого края своего родителя, чтобы правая половина треугольника отображалась в левая половина окна Есть ли хороший способ сделать это в Qt Quick? Я исследовал использование Transform объектов для корректировки координат дочернего элемента Shape, но похоже, что оно ограничено только выполнением линейных преобразований.

Мне также было интересно, есть ли способ визуализации элемента в текстуру / FBO, а затем поместите это в сцену, используя текстурные координаты, чтобы соответствующим образом обернуть отображение дочернего элемента. Однако для меня важна еще одна вещь - поддерживать способность мыши взаимодействовать с дочерним элементом (например, если я добавлю в него MouseArea). Похоже, что если я буду играть в игры с рендерером, чтобы обернуть координаты, то слой обработки событий не узнает об этом.

...