主要思路就是,先添加一个window隐藏显示,等需要弹出时显示,并将需要移动的Item的父类更改为子窗口
main.qml
import QtQuick 2.6
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
MainForm {
id:form
anchors.fill: parent
mouseArea.onClicked: {
console.log(qsTr('Clicked on background. Text: "' + textEdit.text + '"'))
textEdit.parent = videoItem
subWindow.visible =true
}
}
Window {
id: subWindow
width: 200
height: 200
visible: false
Item {
id: videoItem
anchors.fill: parent
}
onClosing: {
subWindow.visible = false
form.textEdit.parent = form
}
}
}
MainForm.ui.qml
import QtQuick 2.6
Rectangle {
property alias mouseArea: mouseArea
property alias textEdit: textEdit
width: 360
height: 360
MouseArea {
id: mouseArea
anchors.fill: parent
}
TextEdit {
id: textEdit
text: qsTr("Enter some text...")
verticalAlignment: Text.AlignVCenter
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20
Rectangle {
anchors.fill: parent
anchors.margins: -10
color: "transparent"
border.width: 1
}
}
}