diff --git a/deepin-devicemanager/src/MacroDefinition.h b/deepin-devicemanager/src/MacroDefinition.h index 90986bde..f7237f3a 100644 --- a/deepin-devicemanager/src/MacroDefinition.h +++ b/deepin-devicemanager/src/MacroDefinition.h @@ -218,6 +218,11 @@ #define HORSCROLL_WIDTH 11 // TreeWidget 横向滚动条高度 #define MIN_NUM 5 // num +// 触摸屏滚动参数 +#define SCROLLER_OVERSHOOT_DISTANCE_FACTOR 0.3 // 超出滚动距离系数 +#define SCROLLER_OVERSHOOT_DRAG_RESIST_FACTOR 0.3 // 超出拖拽阻力系数 +#define SCROLLER_DRAG_VELOCITY_SMOOTH_FACTOR 0.6 // 拖拽速度平滑系数 + const QString LINK_STR = ""; // uos官网链接 const QString DEEPIN_LINK = ""; // 社区版链接 const QString END_STR = " "; // end html diff --git a/deepin-devicemanager/src/Page/PageDetail.cpp b/deepin-devicemanager/src/Page/PageDetail.cpp index 456fd55c..bf1c534e 100644 --- a/deepin-devicemanager/src/Page/PageDetail.cpp +++ b/deepin-devicemanager/src/Page/PageDetail.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -26,6 +26,8 @@ #include #include #include +#include +#include // 宏定义 #define SPACE_HEIGHT 0 // @@ -201,6 +203,13 @@ PageDetail::PageDetail(QWidget *parent) // 设置ScrollArea里面的widget,这个widget是必须要的 mp_ScrollWidget->setContentsMargins(15, 0, 0, 0); mp_ScrollArea->setWidget(mp_ScrollWidget); + // 启用触摸屏滚动支持 + QScroller::grabGesture(mp_ScrollArea, QScroller::LeftMouseButtonGesture); + QScrollerProperties sp; + sp.setScrollMetric(QScrollerProperties::OvershootScrollDistanceFactor, SCROLLER_OVERSHOOT_DISTANCE_FACTOR); + sp.setScrollMetric(QScrollerProperties::OvershootDragResistanceFactor, SCROLLER_OVERSHOOT_DRAG_RESIST_FACTOR); + sp.setScrollMetric(QScrollerProperties::DragVelocitySmoothingFactor, SCROLLER_DRAG_VELOCITY_SMOOTH_FACTOR); + QScroller::scroller(mp_ScrollArea)->setScrollerProperties(sp); hLayout->addWidget(mp_ScrollArea); setLayout(hLayout); diff --git a/deepin-devicemanager/src/Page/PageDriverInstallInfo.cpp b/deepin-devicemanager/src/Page/PageDriverInstallInfo.cpp index d255bbd7..f7a34254 100644 --- a/deepin-devicemanager/src/Page/PageDriverInstallInfo.cpp +++ b/deepin-devicemanager/src/Page/PageDriverInstallInfo.cpp @@ -1,8 +1,10 @@ -// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2023 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #include +#include +#include #include @@ -64,6 +66,13 @@ void PageDriverInstallInfo::initUI() area->setMinimumHeight(10); area->setFrameShape(QFrame::NoFrame); area->setWidgetResizable(true); + // 启用触摸屏滚动支持 + QScroller::grabGesture(area, QScroller::LeftMouseButtonGesture); + QScrollerProperties sp; + sp.setScrollMetric(QScrollerProperties::OvershootScrollDistanceFactor, SCROLLER_OVERSHOOT_DISTANCE_FACTOR); + sp.setScrollMetric(QScrollerProperties::OvershootDragResistanceFactor, SCROLLER_OVERSHOOT_DRAG_RESIST_FACTOR); + sp.setScrollMetric(QScrollerProperties::DragVelocitySmoothingFactor, SCROLLER_DRAG_VELOCITY_SMOOTH_FACTOR); + QScroller::scroller(area)->setScrollerProperties(sp); DWidget *frame = new DWidget(this); frame->setContentsMargins(0, 0, 0, 0); QVBoxLayout *frameLayout = new QVBoxLayout();