qt - 如何在 QML 中动画添加和删除元素到布局?
问题描述
我想在 ColumnLayout 中添加和删除 TextField 的动画。基本上我想像这样制作动画:- https://doc.qt.io/qt-5/videos/viewtransitions-basic.mp4
解决方案
由于 ColumnLayout 使用implicitHeight
来定位项目,您可以向其添加动画以创建滑动效果。我用一个包装Item
来保存implicitHeight
它TextField
本身。它可能看起来并不完美,但我认为你不能走得更远
Item {
visible: your_property_here
implicitHeight: visible ? text.implicitHeight : 0
Behavior on implicitHeight { NumberAnimation { duration: 500 } }
TextField {
id: text
anchors.fill: parent
scale: parent.visible ? 1 : 0.2
Behavior on scale { NumberAnimation { duration: 500 } }
}
}
推荐阅读
- python - 如何使用python openpyxl删除公式并仅在单元格中保留值?
- xcode - 当我只有来自 make 输出的可执行文件时,如何创建 {ApplicationName}.app 包?
- visual-studio-code - 基于文件名的 VSCode 快捷方式
- java - 使用 java stringbuilder 的回文
- spring - 将弹簧迁移到弹簧引导控制器不起作用
- javascript - 为什么所有 redux reducer 函数都在运行时执行?
- python - Keras 中的回调异常 - Tensorflow 2.0 - Python
- c# - 使用 linq 获取具有特定对象属性的列表的一部分
- java - 如何将数据保存到房间?
- firebase - 使用 firestore 文档快照侦听器进行本地打印