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();