QML:将矩形移出窗口

  • 本文关键字:移出 窗口 QML qt qml
  • 更新时间 :
  • 英文 :


是否可以将矩形移出窗口?我唯一想到的是编写自定义逻辑,当将矩形移动到窗口外时,将调整顶部窗口的大小。

当前行为(imgur .gif):

当前行为

期望行为(imgur .png):

期望的行为

main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
Window {
id: root
width: 300
height: 500
visible: true
flags: Qt.ToolTip | Qt.FramelessWindowHint | Qt.WA_TranslucentBackground
color: "#00000000"
Rectangle {
id: draggable
color: "blue"
x: 100
y: 100
width: 100
height: 100
MouseArea {
anchors.fill: parent
property real lastMouseX: 0
property real lastMouseY: 0
onPressed: {
lastMouseX = mouseX
lastMouseY = mouseY
}
onMouseXChanged: {
draggable.x += (mouseX - lastMouseX)
}
onMouseYChanged: {
draggable.y += (mouseY - lastMouseY)
}
}
}
Rectangle {
color: "blue"
x: 100
y: 300
width: 100
height: 100
// ...
}
}

Windows可以是其他Windows的子操作系统。Window行为仍然受到某些平台相关行为的影响,但在桌面环境中,子Windows应该仍然能够移动到父窗口之外。所以只要把矩形改成Window就可以达到你想要的效果了。

Window {
id: root
Window {
id: draggable
...
}
}

最新更新