Всем привет! Делаю что-то вроде сообщения-напоминалки. Идея такая: есть прямоугольник с изменяемым цветом рамки и толщиной, внутри рамки текст с любым сообщением. Задача, в зависимости от типа сообщения (0,1 или 2) заставить изменяться цвет и толщину рамки у прямоугольника. Для привлечения внимания она должна моргать. Например: State1 - дефолтное состояние (толщина рамки 1, цвет черный) State2 - толщина рамки 3, цвет желтый, частота переключения 200 State3 - толщина рамки 3, цвет красный, частота переключения 100 Вот код:
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1
ApplicationWindow {
visible: true
width: 640
height: 480
property variant statesNames: ["state1", "state2", "state3"]
RowLayout {
TextField {
id: edit
}
Button {
text: "Ok"
onClicked: {
myRect.num_state = statesNames[edit.text];
myRect.some_text = statesNames[edit.text];
}
}
}
Test {
id: myRect
anchors.centerIn: parent
}
}
Test.qml
import QtQuick 2.0
Rectangle {
property alias some_text: text_sqr.text
property real temp_int: 500
property alias num_state: myRect.state
id: myRect
width: 100; height: 100
color: "white"
border.color: "black"
border.width: 1
Text {
id: text_sqr
text: some_text
anchors.centerIn: parent
}
states: [
State {
name: "state1"
PropertyChanges { target: myRect; border.color: "black"; border.width: 1}
},
State {
name: "state2"
PropertyChanges { target: myRect; border.color: "orange"; border.width: 5}
},
State {
name: "state3"
PropertyChanges { target: myRect; border.color: "red"; border.width: 5}
}
]
Timer {
id: myTimer
interval: temp_int
running: false
repeat: true
triggeredOnStart: false
// onTriggered: (myRect.state == 'state1') ? myRect.state = "" : myRect.state = 'state1';
Component.onCompleted: start()
}
}
Как стартануть таймер при изменении state? и как его остановить при State1. И как правильно написать условие в onTriggered? Спасибо)