在另一个鼠标区域QML/QT下使用滑块

在另一个鼠标区域QML/QT下使用滑块,qml,qt5,qtquick2,Qml,Qt5,Qtquick2,我正在Qt中设计一个UI界面,其中一个页面可以在视图之间滑动。我已经在整个屏幕中定义了一个SwipeArea区域(这是我在另一个QML文件中定义的MouseArea),以便能够在页面之间滑动,属性propagateComposedEvents设置为true,这样我就可以在页面之间滑动,并且仍然能够单击所有按钮 使用滑块时会出现问题。显然,它无法获取这些鼠标事件,我也无法与之交互,因为当我单击屏幕时,它会启动滑动处理程序。你知道我该怎么解决这个问题吗 这是我定义SwipeArea.qml代码的地方

我正在Qt中设计一个UI界面,其中一个页面可以在视图之间滑动。我已经在整个屏幕中定义了一个
SwipeArea
区域(这是我在另一个QML文件中定义的
MouseArea
),以便能够在页面之间滑动,属性
propagateComposedEvents
设置为
true
,这样我就可以在页面之间滑动,并且仍然能够单击所有按钮

使用
滑块时会出现问题。显然,它无法获取这些鼠标事件,我也无法与之交互,因为当我单击屏幕时,它会启动滑动处理程序。你知道我该怎么解决这个问题吗

这是我定义
SwipeArea.qml
代码的地方:

import QtQuick 2.0

MouseArea {
    property point origin
    property bool ready: false
    signal move(int x, int y)
    signal swipe(string direction)

    propagateComposedEvents: true


    onPressed: {
        drag.axis = Drag.XAndYAxis
        origin = Qt.point(mouse.x, mouse.y)
    }

    onPositionChanged: {
        switch (drag.axis) {
        case Drag.XAndYAxis:
            if (Math.abs(mouse.x - origin.x) > 16) {
                drag.axis = Drag.XAxis
            }
            else if (Math.abs(mouse.y - origin.y) > 16) {
                drag.axis = Drag.YAxis
            }
            break
        case Drag.XAxis:
            move(mouse.x - origin.x, 0)
            break
        case Drag.YAxis:
            move(0, mouse.y - origin.y)
            break
        }
    }

    onReleased: {
        switch (drag.axis) {
        case Drag.XAndYAxis:
            canceled(mouse)
            break
        case Drag.XAxis:
            swipe(mouse.x - origin.x < 0 ? "left" : "right")
            break
        case Drag.YAxis:
            swipe(mouse.y - origin.y < 0 ? "up" : "down")
            break
        }
    }
}
可能需要添加的重要信息是,我的滑块代码:

  Slider {
        id: slider
        anchors.centerIn: parent
        updateValueWhileDragging:true
        activeFocusOnPress:true

        style: SliderStyle {
            id:sliderStyle

            //Slider handler
            handle: Rectangle {
                id:handler
                width: 22
                height: 44
                radius:2
                antialiasing: true

                Image{
                    source:"icons/slidercenter.png"
                    anchors.centerIn: parent
                }
            }

            //Slider Groove
            groove: Item {
                id:slidergroove
                implicitHeight: 50
                implicitWidth: temperaturePage.width -50

         }
     }
  }

我感谢任何帮助或意见,并提前感谢您

你能解决这个问题吗?
  Slider {
        id: slider
        anchors.centerIn: parent
        updateValueWhileDragging:true
        activeFocusOnPress:true

        style: SliderStyle {
            id:sliderStyle

            //Slider handler
            handle: Rectangle {
                id:handler
                width: 22
                height: 44
                radius:2
                antialiasing: true

                Image{
                    source:"icons/slidercenter.png"
                    anchors.centerIn: parent
                }
            }

            //Slider Groove
            groove: Item {
                id:slidergroove
                implicitHeight: 50
                implicitWidth: temperaturePage.width -50

         }
     }
  }