【发布时间】:2018-04-24 08:36:56
【问题描述】:
这个问题类似于 - 但与Moving qml Item out of left side of window 不同,因为我的问题是关于对话框,而不是一般的项目。区别如下所述。
我有一个 Qt 对话框,我想从左侧进入屏幕。
我采取的第一种方法是将对话框的x 属性设置为-width,然后添加Behavior on x 或手动触发的NumberAnimation。
但是这种方法失败了,因为不允许设置负的 x 值并且该值立即更改为 0。
post 通过使用锚点和AnchorChanges 和transitions 提供了解决此问题的方法 - 但仅适用于项目。
但是,Dialog 类型既不提供状态,也不提供锚点,而只提供坐标。
所以我的问题是:如何让 QML 对话框从屏幕左侧的动画显示到视图中?
这是一个最小的代码示例,演示了 x 属性被重置为 0:
import QtQuick 2.7
import QtQuick.Controls 2.3
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Dialog Demo")
Dialog {
id: dialog
width: 200
height: 200
x: -width
Text {
anchors.centerIn: parent
text: "Ok?"
}
standardButtons: Dialog.Ok
onOpened: x = 100
Behavior on x { NumberAnimation{ duration: 1000 } }
}
Component.onCompleted: dialog.open()
}
【问题讨论】:
-
因为我觉得有bug,所以提交了这个报告:bugreports.qt.io/browse/QTBUG-67915
标签: qml qtquick2 qtquickcontrols2