You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QML Tumbler垂直移出鼠标后停止响应,如何解决?

问题解决:QT 6.2.1中Tumbler垂直移出组件停止响应的问题

问题分析

Tumbler组件的默认拖动逻辑中,鼠标垂直移出组件边界时会触发终止拖动的判定,但水平方向的移出判定逻辑宽松,因此左右移出甚至窗口外仍能正常操作。而Dial组件的拖动基于鼠标相对位移计算,不受方向限制,所以无此问题。这是QT 6.2.1版本中Tumbler的默认行为限制,并非遗漏基础设置。

解决方案

给Tumbler外层包裹MouseArea,强制捕获全局鼠标拖动事件,让Tumbler持续响应垂直移出后的操作:

import QtQuick 2.5
import QtQuick.Controls 2.5

Rectangle {
    width: 1000
    height: 600

    MouseArea {
        anchors.fill: parent
        hoverEnabled: true
        propagateComposedEvents: true

        Tumbler {
            anchors.centerIn: parent
            model: 24
            width: 30
            height: 100
            // 允许MouseArea传递拖动事件给Tumbler
            onPressed: mouse.accepted = false
            onPositionChanged: mouse.accepted = false
            onReleased: mouse.accepted = false
        }
    }
}

如果不想修改布局结构,也可以尝试升级到QT 6.3及以上版本,官方后续修复了这个Tumbler的拖动判定问题。

内容的提问来源于stack exchange,提问作者Marty Phi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:15:52