【发布时间】:2019-09-12 23:44:11
【问题描述】:
在 Qt Quick 应用程序中,我想在单击切换按钮时为主窗口高度设置动画,以显示或隐藏一种托盘面板。主表单内容包含标题框架、滑动视图和下方的网格视图。
为了达到预期的效果,我在我的 qss 代码中添加了以下动画,这些动画根据我的切换按钮状态运行:
ParallelAnimation
{
id: one_dev_connected_toggle_window_height_increase
running: false
NumberAnimation { target: mainWindow; property: "height"; to: 750; easing.type: Easing.InOutQuad; duration: 500}
}
ParallelAnimation
{
id: one_dev_connected_toggle_window_height_decrease
running: false
NumberAnimation { target: mainWindow; property: "height"; to: 450; easing.type: Easing.InOutQuad; duration: 500}
}
当我尝试打开托盘时,动画会在我的整个界面上造成巨大的闪烁。但是,当我关闭托盘时,动画完全没有闪烁,效果很流畅,正如我所料。
我的主窗口声明如下:
ApplicationWindow
{
id: mainWindow
visible: true
width: 700
height: 750
color: "#000000"
title: qsTr("Drag&Drop App")
flags: Qt.Window | Qt.FramelessWindowHint
....
有人能解释一下为什么我会面临这样的闪烁吗?我应该改变什么来解决它?
【问题讨论】:
标签: qt animation qml flicker qt-quick