ДС
1 февраля 2022 г. 14:15
Синхронизация анимаций в ListView
Добрый день. Столкнулся с проблемой синхронизации анимации разных делегатов. У меня есть ListView, в котором хранятся делегаты состояния сети, я навешиваю анимацию на индикатор состояния при переходя состояний. Вопрос, как синхронизировать анимации внутри делегатов, чтобы они меняли свойство opacity в "такт".
- ListView {
- id: networkList
- model: ListModel { id: networksModel }
- highlightMoveDuration : 200
- orientation: ListView.Horizontal
- anchors.right: right_button.left
- anchors.left: left_button.right
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- anchors.leftMargin: 10 * pt
- anchors.rightMargin: 10 * pt
- delegate: networkItem
- interactive: false
- clip: true
- }
- Component {
- id: networkItem
- Item {
- id:controlDelegate
- width: networksModel.count > visible_count -1 ? item_width : parent.parent.width/networksModel.count
- height: 40
- RowLayout {
- anchors.verticalCenter: parent.verticalCenter
- anchors.horizontalCenter: parent.horizontalCenter
- spacing: 5 * pt
- Text {
- id: nameNet
- Layout.fillWidth: true
- font: dapQuicksandFonts.dapMainFontTheme.dapFontQuicksandBold12
- color: currTheme.textColor
- text: name
- }
- ImageLoader{
- id:img
- Layout.alignment: Qt.AlignVCenter
- Layout.preferredHeight: 8 * pt
- Layout.preferredWidth: 8 * pt
- innerWidth: 8 * pt
- innerHeight: 8 * pt
- source: networkState === "OFFLINE" ? "qrc:/resources/icons/" + pathTheme + "/indicator_offline.png" :
- networkState === "ERROR" ? "qrc:/resources/icons/" + pathTheme + "/indicator_error.png":
- "qrc:/resources/icons/" + pathTheme + "/indicator_online.png"
- }
- SequentialAnimation {
- NumberAnimation {
- target: img
- properties: "opacity"
- from: 1.0
- to: 0.1
- duration: 1000
- }
- NumberAnimation {
- target: img
- properties: "opacity"
- from: 0.1
- to: 1.0
- duration: 1000
- }
- loops:Animation.Infinite
- running: networkState !== targetState? true : false
- onRunningChanged:
- {
- if(!running)
- img.opacity = 1;
- }
- }
- }
- }
- }
- }
1
99
Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Последние комментарии
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VP9 марта 2025 г. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМ22 ноября 2024 г. 21:51Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Сейчас обсуждают на форуме
- МА1 апреля 2025 г. 16:210ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…