QML で color を vector4d に変換する方法

この記事は Qt Advent Calendar 2019 5日目の記事です。

Qt.vector4d(color.r, color.g, color.b, color.a)

のように、color 型の変数(もしくはプロパティ)の r, g, b, a 要素でアクセスします。

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    id: root
    visible: true
    width: 100
    height: 100
    title: qsTr("Hello World")

    property vector4d vec: Qt.vector4d(root.color.r, root.color.g, root.color.b, root.color.a)

    ColorAnimation on color {
        from: 'red'
        to: 'blue'
        duration: 20000
        easing.type: Easing.SineCurve
        loops: Animation.Infinite
    }

    Text {
        anchors.centerIn: parent
        text: '%1\n%2\n%3\n%4'.arg(root.vec.x).arg(root.vec.y).arg(root.vec.z).arg(root.vec.w)
        color: 'white'
    }
}

ちょっとしたことですが、誰かのためになれば!

あわせて読みたい