Визуальная обратная связь (цветовой переход) на TextField?

Чтобы перерезать заранее определенные интервалы, вы можете указать вектор разрывов, используя параметр breaks.

Определить некоторые данные:

x <- sample(0:20, 100, replace=TRUE)
x

Теперь вырезаем x at 0, 10 и 20:

cut(x, breaks=c(0, 10, 20), include.lowest=TRUE)

  [1] (10,20] [0,10]  [0,10]  (10,20] (10,20] (10,20] [0,10]  (10,20] (10,20]
 [10] (10,20] [0,10]  (10,20] (10,20] (10,20] [0,10]  (10,20] [0,10]  [0,10] 
 [19] [0,10]  (10,20] [0,10]  [0,10]  [0,10]  (10,20] [0,10]  (10,20] (10,20]
 [28] (10,20] (10,20] [0,10]  [0,10]  [0,10]  [0,10]  (10,20] [0,10]  [0,10] 
 [37] [0,10]  [0,10]  (10,20] (10,20] (10,20] (10,20] [0,10]  (10,20] [0,10] 
 [46] (10,20] [0,10]  (10,20] (10,20] [0,10]  [0,10]  (10,20] (10,20] (10,20]
 [55] [0,10]  [0,10]  (10,20] [0,10]  [0,10]  [0,10]  [0,10]  (10,20] (10,20]
 [64] (10,20] [0,10]  [0,10]  (10,20] (10,20] (10,20] (10,20] (10,20] (10,20]
 [73] (10,20] [0,10]  [0,10]  [0,10]  (10,20] [0,10]  (10,20] [0,10]  (10,20]
 [82] [0,10]  [0,10]  (10,20] [0,10]  [0,10]  [0,10]  (10,20] (10,20] [0,10] 
 [91] [0,10]  [0,10]  (10,20] (10,20] [0,10]  [0,10]  [0,10]  [0,10]  (10,20]
[100] (10,20]
Levels: [0,10] (10,20]
0
задан eudoxos 3 March 2019 в 21:28
поделиться

1 ответ

Вы должны реализовать свой собственный элемент управления, полученный из Text, и добавить в него всю необходимую логику анимации. Например:

MyItem.qml

import QtQuick 2.12

Text {
    id: txt
    property bool hightlight: false
    property color textColor: color
    property color hightlightColor: "red"
    onHightlightChanged: {
        if(hightlight)
            anim.running = true;
    }

    SequentialAnimation
    {
        id: anim
        running: false
        PropertyAnimation {
            target: txt
            property: "color"
            to: hightlightColor
            duration: 500
        }
        PropertyAnimation {
            target: txt
            property: "color"
            to: textColor
            duration: 500
        }
        ScriptAction {
            script: txt.hightlight = false;
        }
    }
}

Использование:

import QtQuick 2.12
import QtQuick.Controls 2.3

ApplicationWindow {
    id: window
    title: "Test"
    visible: true
    height: 250
    width: 200

    MyItem {
        id: item
        text: "Hello"
        anchors.centerIn: parent
        hightlightColor: "red"
        MouseArea {
            anchors.fill: parent
            hoverEnabled: true
            onEntered: {
                item.hightlight = true;
            }
        }
    }
}
0
ответ дан folibis 3 March 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: