[Interest] Cannot drag a Pane in Qml even on Qt 6.X
Nuno Santos
nuno.santos at imaginando.pt
Tue Mar 7 08:03:06 CET 2023
Mitch,
Thank you very much for the clarification.
Best regards,
Nuno
> On 7 Mar 2023, at 00:28, EXT Mitch Curtis <mitch.curtis at qt.io> wrote:
>
>> -----Original Message-----
>> From: Interest <interest-bounces at qt-project.org <mailto:interest-bounces at qt-project.org>> On Behalf Of Nuno
>> Santos
>> Sent: Monday, 6 March 2023 4:55 PM
>> To: Qt Interest <interest at qt-project.org <mailto:interest at qt-project.org>>
>> Subject: [Interest] Cannot drag a Pane in Qml even on Qt 6.X
>>
>> Hi,
>>
>> It was not possible to drag a Pane on Qt 5.X
>>
>> But I was almost convinced it was possible to do it on Qt 6.X
>>
>> But now I have tried again and it seems it is not possible. Or maybe I’m doing
>> something wrong.
>>
>> Is there any strong reason a Pane cannot be draggable?
>
> The parent of the MouseArea is the contentItem, thanks to contentData being the default property. That's explained here:
>
> https://doc.qt.io/qt-6/qml-qtquick-controls2-pane.html#details <https://doc.qt.io/qt-6/qml-qtquick-controls2-pane.html#details>
>
> You can see what really happens by modifying the code below to set the drag target to parent again and uncomment the title binding - the contentItem (and black-bordered rectangle) will move but the Pane itself won't.
>
> Set the drag target to the pane and it will work:
>
> import QtQuick
> import QtQuick.Controls
>
> Window {
> width: 640
> height: 480
> visible: true
> title: "pane.x: " + pane.x + " pane.y: " + pane.y
> // title: "pane.contentItem.x: " + pane.contentItem.x + "pane.contentItem.y: " + pane.contentItem.y
>
> Item {
> width: 200
> height: 200
>
> DropArea {
> x: 75
> y: 75
> width: 50
> height: 50
>
> Rectangle {
> anchors.fill: parent
> color: parent.containsDrag ? "green" : "gray"
> }
> }
>
> Pane {
> id: pane
> x: 10
> y: 10
> width: 20
> height: 20
> leftPadding: 0
> rightPadding: 0
> topPadding: 0
> bottomPadding: 0
> background: Rectangle {
> color: "tomato"
> }
>
> Rectangle {
> anchors.fill: parent
> color: "transparent"
> border.color: "black"
> }
>
> Drag.active: dragArea.drag.active
> Drag.hotSpot.x: 10
> Drag.hotSpot.y: 10
>
> MouseArea {
> id: dragArea
> anchors.fill: parent
>
> drag.target: pane
> }
> }
> }
> }
>
>> Thanks!
>>
>> Nuno
>>
>>
>> import QtQuick
>> import QtQuick.Layouts
>> import QtQuick.Controls
>>
>> Window {
>> width: 640
>> height: 480
>> visible: true
>> title: qsTr("Hello World")
>>
>> Item {
>> width: 200; height: 200
>>
>> DropArea {
>> x: 75; y: 75
>> width: 50; height: 50
>>
>> Rectangle {
>> anchors.fill: parent
>> color: parent.containsDrag ? "green" : "gray"
>> }
>> }
>>
>> //Rectangle {
>> Pane {
>> x: 10; y: 10
>> width: 20; height: 20
>> //color: "red"
>>
>> Drag.active: dragArea.drag.active
>> Drag.hotSpot.x: 10
>> Drag.hotSpot.y: 10
>>
>> MouseArea {
>> id: dragArea
>> anchors.fill: parent
>>
>> drag.target: parent
>> }
>> }
>> }
>> }
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org <mailto:Interest at qt-project.org>
>> https://lists.qt-project.org/listinfo/interest <https://lists.qt-project.org/listinfo/interest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20230307/44c89211/attachment.htm>
More information about the Interest
mailing list