Skip to content

Commit f72633d

Browse files
committed
test: adapt unit tests for Qt5/Qt6 dual compatibility
Add qteventcompat.h with QT_COMPAT_MOUSE_EVENT and QT_COMPAT_WHEEL_EVENT macros to handle QMouseEvent and QWheelEvent constructor signature changes between Qt5/Qt6. Update CMakeLists.txt to auto-detect Qt version (5 or 6), upgrade C++ standard to C++17, use modern cmake target-based linking, and remove deprecated qt5_use_modules. 添加qteventcompat.h兼容头文件,处理Qt5/Qt6鼠标和滚轮 事件构造函数签名差异;更新CMake构建系统自动检测Qt版本, 升级C++标准至C++17,使用现代CMake链接方式。 Log: 单元测试适配Qt5/Qt6双版本兼容 Influence: 测试代码可同时兼容Qt5和Qt6构建环境,无需 手动修改事件构造代码即可在不同Qt版本上编译运行。
1 parent 4062710 commit f72633d

13 files changed

Lines changed: 167 additions & 82 deletions

tests/CMakeLists.txt

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# 定义需要的cmake版本
2-
cmake_minimum_required(VERSION 3.10)
2+
cmake_minimum_required(VERSION 3.16)
33

4-
# 设置cmake参数
5-
set(CMAKE_CXX_STANDARD 14)
4+
# 设置cmake参数(与主工程保持一致,使用 C++17)
5+
set(CMAKE_CXX_STANDARD 17)
66
set(CMAKE_INCLUDE_CURRENT_DIR ON)
77
set(CMAKE_AUTOMOC ON)
88
set(CMAKE_AUTORCC ON)
@@ -11,6 +11,20 @@ set(CMAKE_AUTOUIC ON)
1111
# 设置工程名字
1212
project(deepin-draw-test)
1313

14+
# 测试代码需要使用主工程设置的 Qt / DTK 版本
15+
if(NOT DEFINED QT_VERSION_MAJOR)
16+
find_package(Qt6 QUIET)
17+
if(Qt6_FOUND)
18+
set(QT_VERSION_MAJOR 6)
19+
set(DTK_VERSION_MAJOR 6)
20+
else()
21+
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui Test)
22+
set(QT_VERSION_MAJOR 5)
23+
set(DTK_VERSION_MAJOR "")
24+
endif()
25+
endif()
26+
message(STATUS "Tests will be built against Qt${QT_VERSION_MAJOR} / DTK${DTK_VERSION_MAJOR}")
27+
1428
option(DEEPINDRAW_TEST_OFFSCREENT "test in off screen." ON)
1529
if(DEEPINDRAW_TEST_OFFSCREENT)
1630
add_definitions(-DTEST_OFFSCREENT)
@@ -105,28 +119,21 @@ if(DEEPINDRAW_TEST_DIALOG_ITEM)
105119
add_definitions(-DTEST_DIALOG)
106120
endif()
107121

108-
# 设置Qt模块
109-
set(QtModule Core Gui Widgets DBus PrintSupport Svg Concurrent LinguistTools Test)
110-
111-
# 查找Qt相关的库链接
112-
find_package(Qt5 REQUIRED ${QtModule})
122+
# 设置Qt模块(按 Qt 主版本选择对应组件名)
123+
if(QT_VERSION_MAJOR EQUAL 6)
124+
set(QtModule Core Gui Widgets DBus PrintSupport Svg SvgWidgets Concurrent Test)
125+
find_package(Qt6 REQUIRED COMPONENTS ${QtModule})
126+
else()
127+
set(QtModule Core Gui Widgets DBus PrintSupport Svg Concurrent Test)
128+
find_package(Qt5 REQUIRED COMPONENTS ${QtModule})
129+
endif()
113130

114131
#注意mips不支持-fsanitize
115132
if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64")
116-
#set(CMAKE_CXX_FLAGS "-g -O1 -fprofile-arcs -ftest-coverage")
117133
set(CMAKE_CXX_FLAGS "-g -O1 -fprofile-arcs -ftest-coverage")
118-
#set(CMAKE_C_FLAGS "-g -O1 -fprofile-arcs -ftest-coverage")
119-
set(CMAKE_L_FLAGS "-g -O1 -fprofile-arcs -ftest-coverage")
120-
121-
#mips not support -fsanitize,so only -lgcov when link ${BASE_LIB}.
122134
set(CMAKE_EXE_LINKER_FLAGS "-lgcov")
123135
else()
124-
#set(CMAKE_CXX_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer -g -O1 -fprofile-arcs -ftest-coverage")
125136
set(CMAKE_CXX_FLAGS "-g -O1 -fprofile-arcs -ftest-coverage")
126-
#set(CMAKE_C_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer -g -O1 -fprofile-arcs -ftest-coverage")
127-
set(CMAKE_L_FLAGS "-fsanitize=undefined,address,leak -fno-omit-frame-pointer -g -O1 -fprofile-arcs -ftest-coverage")
128-
129-
# because ${BASE_LIB} lib is compile with -fsanitize and -lgcov,so we should add those flag when link it.
130137
set(CMAKE_EXE_LINKER_FLAGS "-fsanitize=undefined,address,leak -lgcov")
131138

132139
# notice code that we should output memery use info.
@@ -161,9 +168,11 @@ target_link_libraries(${PROJECT_NAME} gmock gmock_main gtest gtest_main pthread
161168
# 使用第三方库需要用到的一个包
162169
find_package(PkgConfig REQUIRED)
163170

164-
# 检查第三方库(这里检查了名字为dtkwidget的库和名字为dtkgui的库),然后取名3RMODULES
171+
# 检查第三方库(注意 Qt5 下名为 dtkwidget,Qt6 下名为 dtk6widget)
165172
pkg_check_modules(3RMODULES REQUIRED
166-
dtkwidget dtkgui
173+
dtk${DTK_VERSION_MAJOR}widget
174+
dtk${DTK_VERSION_MAJOR}gui
175+
dtk${DTK_VERSION_MAJOR}core
167176
)
168177

169178
# 添加第三方库的所有文件夹路径到工程中来(注意 *_INCLUDE_DIRS)
@@ -174,5 +183,7 @@ target_link_libraries(${PROJECT_NAME} ${3RMODULES_LIBRARIES})
174183

175184
#------------------------------添加第三方库end-------------------------------------
176185

177-
# 将工程与Qt模块链接起来
178-
qt5_use_modules(${PROJECT_NAME} ${QtModule})
186+
# 将工程与 Qt 模块链接起来(兼容 Qt5 / Qt6)
187+
foreach(module IN LISTS QtModule)
188+
target_link_libraries(${PROJECT_NAME} Qt${QT_VERSION_MAJOR}::${module})
189+
endforeach()

tests/testItems/publicApi.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

@@ -10,6 +10,7 @@
1010
#include <QtTest>
1111
#include <QTestEventList>
1212
#include <qaction.h>
13+
#include "qteventcompat.h"
1314

1415

1516
#include <gtest/gtest.h>
@@ -89,7 +90,7 @@ class DMouseMoveEvent: public QTestMouseEvent
8990
QTest::lastMouseTimestamp += _delay;
9091
}
9192

92-
QMouseEvent me(QEvent::MouseMove, _pos, _button, _button, _modifiers);
93+
QT_COMPAT_MOUSE_EVENT(me, QEvent::MouseMove, _pos, _button, _button, _modifiers);
9394
me.setTimestamp(ulong(++QTest::lastMouseTimestamp));
9495
QSpontaneKeyEvent::setSpontaneous(&me);
9596
if (!dApp->notify(w, &me)) {
@@ -249,8 +250,8 @@ void setBrushColor(CGraphicsItem *item, QColor color)
249250

250251
item = dynamic_cast<CGraphicsItem *>(item->drawScene()->getBzItems().first());
251252
// [0] show colorPanel
252-
QMouseEvent mousePressEvent(QEvent::MouseButtonPress, QPointF(5, 5),
253-
Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
253+
QT_COMPAT_MOUSE_EVENT(mousePressEvent, QEvent::MouseButtonPress, QPointF(5, 5),
254+
Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
254255
dApp->sendEvent(brush, &mousePressEvent);
255256
QTest::qWait(200);
256257
CColorPickWidget *pickColor = brush->colorPick();
@@ -284,11 +285,11 @@ void setBrushColor(CGraphicsItem *item, QColor color)
284285
QTest::qWait(200);
285286
dApp->sendEvent(iconbutton, &mousePressEvent);
286287
QTest::qWait(200);
287-
QMouseEvent mouseReleaseEvent(QEvent::MouseButtonRelease, QPointF(5, 5), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
288+
QT_COMPAT_MOUSE_EVENT(mouseReleaseEvent, QEvent::MouseButtonRelease, QPointF(5, 5), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
288289
dApp->sendEvent(iconbutton, &mouseReleaseEvent);
289290
QTest::qWait(200);
290-
event = QEvent(QEvent::Leave);
291-
dApp->sendEvent(iconbutton, &event);
291+
QEvent leaveEvent(QEvent::Leave);
292+
dApp->sendEvent(iconbutton, &leaveEvent);
292293
QTest::qWait(200);
293294

294295
// [4] picker color
@@ -342,30 +343,30 @@ void resizeItem()
342343
for (int i = 0; i < handles.size(); ++i) {
343344
CSizeHandleRect *pNode = handles[i];
344345
QPoint posInView = view->mapFromScene(pNode->mapToScene(pNode->boundingRect().center()));
345-
QMouseEvent mouseEvent(QEvent::MouseButtonPress, posInView, Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier);
346+
QT_COMPAT_MOUSE_EVENT(mouseEvent, QEvent::MouseButtonPress, posInView, Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier);
346347
QApplication::sendEvent(view->viewport(), &mouseEvent);
347348
QTest::qWait(delay);
348-
QMouseEvent mouseEvent1(QEvent::MouseMove, posInView + QPoint(20, 20), Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier);
349+
QT_COMPAT_MOUSE_EVENT(mouseEvent1, QEvent::MouseMove, posInView + QPoint(20, 20), Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier);
349350
QApplication::sendEvent(view->viewport(), &mouseEvent1);
350351
QTest::qWait(delay);
351352
}
352353
for (int i = 0; i < handles.size(); ++i) {
353354
CSizeHandleRect *pNode = handles[i];
354355
QPoint posInView = view->mapFromScene(pNode->mapToScene(pNode->boundingRect().center()));
355-
QMouseEvent mouseEvent(QEvent::MouseButtonPress, posInView, Qt::LeftButton, Qt::LeftButton, Qt::AltModifier);
356+
QT_COMPAT_MOUSE_EVENT(mouseEvent, QEvent::MouseButtonPress, posInView, Qt::LeftButton, Qt::LeftButton, Qt::AltModifier);
356357
QApplication::sendEvent(view->viewport(), &mouseEvent);
357358
QTest::qWait(delay);
358-
QMouseEvent mouseEvent1(QEvent::MouseMove, posInView - QPoint(20, 20), Qt::LeftButton, Qt::LeftButton, Qt::AltModifier);
359+
QT_COMPAT_MOUSE_EVENT(mouseEvent1, QEvent::MouseMove, posInView - QPoint(20, 20), Qt::LeftButton, Qt::LeftButton, Qt::AltModifier);
359360
QApplication::sendEvent(view->viewport(), &mouseEvent1);
360361
QTest::qWait(delay);
361362
}
362363
for (int i = 0; i < handles.size(); ++i) {
363364
CSizeHandleRect *pNode = handles[i];
364365
QPoint posInView = view->mapFromScene(pNode->mapToScene(pNode->boundingRect().center()));
365-
QMouseEvent mouseEvent(QEvent::MouseButtonPress, posInView, Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier | Qt::AltModifier);
366+
QT_COMPAT_MOUSE_EVENT(mouseEvent, QEvent::MouseButtonPress, posInView, Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier | Qt::AltModifier);
366367
QApplication::sendEvent(view->viewport(), &mouseEvent);
367368
QTest::qWait(delay);
368-
QMouseEvent mouseEvent1(QEvent::MouseMove, posInView + QPoint(20, 20), Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier | Qt::AltModifier);
369+
QT_COMPAT_MOUSE_EVENT(mouseEvent1, QEvent::MouseMove, posInView + QPoint(20, 20), Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier | Qt::AltModifier);
369370
QApplication::sendEvent(view->viewport(), &mouseEvent1);
370371
QTest::qWait(delay);
371372
}

tests/testItems/qteventcompat.h

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
// SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd.
2+
//
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
// 本头文件提供 Qt5 / Qt6 通用的事件构造辅助宏。
6+
//
7+
// 背景:QWheelEvent / QMouseEvent 在 Qt6 中删除了 Qt5 时期的兼容构造函数,
8+
// 测试代码需要同时兼容两种 Qt 版本,因此在此集中处理差异。
9+
//
10+
// 用法:
11+
// QT_COMPAT_WHEEL_EVENT(name, pos, delta, button, modifiers)
12+
// QT_COMPAT_MOUSE_EVENT(name, type, pos, button, buttons, modifiers)
13+
// 这两个宏会以正确的参数列表「原地构造」对应类型的局部变量 name。
14+
15+
#ifndef QTEVENTCOMPAT_H
16+
#define QTEVENTCOMPAT_H
17+
18+
#include <QtGlobal>
19+
#include <QEvent>
20+
#include <QPointF>
21+
#include <QPoint>
22+
#include <Qt>
23+
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
24+
# include <QWheelEvent>
25+
# include <QMouseEvent>
26+
#endif
27+
28+
// 构造一个名为 name 的 QWheelEvent 局部变量,参数语义沿用 Qt5 风格:
29+
// pos : 鼠标位置 (QPointF)
30+
// delta : 滚轮增量 (int,正负代表方向)
31+
// button : 触发按键 (Qt::MouseButton)
32+
// modifiers : 修饰键 (Qt::KeyboardModifiers)
33+
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
34+
# define QT_COMPAT_WHEEL_EVENT(name, pos, delta, button, modifiers) \
35+
QWheelEvent name((pos), (pos), QPoint(), QPoint(0, (delta)), \
36+
Qt::MouseButtons(button), (modifiers), \
37+
Qt::NoScrollPhase, false)
38+
#else
39+
# define QT_COMPAT_WHEEL_EVENT(name, pos, delta, button, modifiers) \
40+
QWheelEvent name((pos), (delta), (button), (modifiers))
41+
#endif
42+
43+
// 构造一个名为 name 的 QMouseEvent 局部变量,参数语义沿用 Qt5 风格:
44+
// type : 事件类型 (QEvent::Type)
45+
// pos : 鼠标位置 (QPointF)
46+
// button : 触发按键 (Qt::MouseButton)
47+
// buttons : 当前按键状态 (Qt::MouseButtons)
48+
// modifiers : 修饰键 (Qt::KeyboardModifiers)
49+
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
50+
# define QT_COMPAT_MOUSE_EVENT(name, type, pos, button, buttons, modifiers) \
51+
QMouseEvent name((type), (pos), (pos), (button), (buttons), (modifiers))
52+
#else
53+
# define QT_COMPAT_MOUSE_EVENT(name, type, pos, button, buttons, modifiers) \
54+
QMouseEvent name((type), (pos), (button), (buttons), (modifiers))
55+
#endif
56+
57+
#endif // QTEVENTCOMPAT_H

tests/testItems/test_ellipseItem.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

@@ -13,6 +13,7 @@
1313
#include "cdrawtoolfactory.h"
1414
#undef protected
1515
#undef private
16+
#include "qteventcompat.h"
1617

1718
#include "ccentralwidget.h"
1819
#include "clefttoolbar.h"
@@ -164,11 +165,11 @@ TEST(EllipseItem, TestSelectAllEllipseItem)
164165
emit view->m_itemsHEqulSpaceAlign->triggered(true);
165166

166167
//滚轮事件
167-
QWheelEvent wheelevent(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
168+
QT_COMPAT_WHEEL_EVENT(wheelevent, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
168169
view->wheelEvent(&wheelevent);
169-
QWheelEvent wheelevent2(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
170+
QT_COMPAT_WHEEL_EVENT(wheelevent2, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
170171
view->wheelEvent(&wheelevent2);
171-
QWheelEvent wheelevent3(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
172+
QT_COMPAT_WHEEL_EVENT(wheelevent3, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
172173
view->wheelEvent(&wheelevent3);
173174
}
174175

tests/testItems/test_function.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

5+
#include "qteventcompat.h"
6+
// Pre-include standard headers before #define private public to avoid
7+
// breaking C++ standard library internals (e.g. std::basic_stringbuf).
8+
#include <sstream>
9+
510
#define protected public
611
#define private public
712
#include "mainwindow.h"
@@ -303,7 +308,7 @@ TEST(TestFunction, CSpinBox)
303308

304309
box.contextMenuEvent(nullptr);
305310

306-
QMouseEvent e_md(QEvent::Type::MouseButtonDblClick, QPointF(1, 1), Qt::MouseButton::LeftButton, Qt::MouseButtons(), Qt::KeyboardModifier::NoModifier);
311+
QT_COMPAT_MOUSE_EVENT(e_md, QEvent::Type::MouseButtonDblClick, QPointF(1, 1), Qt::MouseButton::LeftButton, Qt::MouseButtons(), Qt::KeyboardModifier::NoModifier);
307312
box.mouseDoubleClickEvent(&e_md);
308313
}
309314

@@ -410,7 +415,7 @@ TEST(TestFunction, CDrawToolEvent)
410415
auto scene = page->scene();
411416

412417
//mouse
413-
QMouseEvent e_1(QEvent::Type::MouseButtonPress, QPointF(100, 100), Qt::MouseButton::LeftButton, Qt::MouseButtons(), Qt::KeyboardModifier::NoModifier);
418+
QT_COMPAT_MOUSE_EVENT(e_1, QEvent::Type::MouseButtonPress, QPointF(100, 100), Qt::MouseButton::LeftButton, Qt::MouseButtons(), Qt::KeyboardModifier::NoModifier);
414419
CDrawToolEvent::fromQEvent(&e_1, scene);
415420

416421
//touch

tests/testItems/test_lineItem.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

@@ -11,6 +11,7 @@
1111
#include "cviewmanagement.h"
1212
#undef protected
1313
#undef private
14+
#include "qteventcompat.h"
1415
#include "ccentralwidget.h"
1516
#include "clefttoolbar.h"
1617
#include "toptoolbar.h"
@@ -219,11 +220,11 @@ TEST(LineItem, TestSelectAllLineItem)
219220
emit view->m_itemsHEqulSpaceAlign->triggered(true);
220221

221222
//滚轮事件
222-
QWheelEvent wheelevent(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
223+
QT_COMPAT_WHEEL_EVENT(wheelevent, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
223224
view->wheelEvent(&wheelevent);
224-
QWheelEvent wheelevent2(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
225+
QT_COMPAT_WHEEL_EVENT(wheelevent2, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
225226
view->wheelEvent(&wheelevent2);
226-
QWheelEvent wheelevent3(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
227+
QT_COMPAT_WHEEL_EVENT(wheelevent3, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
227228
view->wheelEvent(&wheelevent3);
228229
}
229230

tests/testItems/test_pictureItem.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

@@ -9,6 +9,8 @@
99
#include "cgraphicsview.h"
1010
#include <qaction.h>
1111

12+
#include "qteventcompat.h"
13+
1214
#include "ccentralwidget.h"
1315
#include "clefttoolbar.h"
1416
#include "toptoolbar.h"
@@ -322,11 +324,11 @@ TEST(PictureItem, TestSelectAllPictureItem)
322324
view->m_itemsHEqulSpaceAlign->triggered(true);
323325

324326
//滚轮事件
325-
QWheelEvent wheelevent(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
327+
QT_COMPAT_WHEEL_EVENT(wheelevent, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
326328
view->wheelEvent(&wheelevent);
327-
QWheelEvent wheelevent2(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
329+
QT_COMPAT_WHEEL_EVENT(wheelevent2, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
328330
view->wheelEvent(&wheelevent2);
329-
QWheelEvent wheelevent3(QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
331+
QT_COMPAT_WHEEL_EVENT(wheelevent3, QPointF(1000, 1000), 100, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
330332
view->wheelEvent(&wheelevent3);
331333
}
332334

tests/testItems/test_polygonItem.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2020-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

@@ -10,6 +10,7 @@
1010
#include <qaction.h>
1111
#undef protected
1212
#undef private
13+
#include "qteventcompat.h"
1314
#include "ccentralwidget.h"
1415
#include "clefttoolbar.h"
1516
#include "toptoolbar.h"
@@ -186,11 +187,11 @@ TEST(PolygonItem, TestSelectAllPolygonItem)
186187
emit view->m_itemsHEqulSpaceAlign->triggered(true);
187188

188189
//滚轮事件
189-
QWheelEvent wheelevent(QPointF(1000, 1000), 200, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
190+
QT_COMPAT_WHEEL_EVENT(wheelevent, QPointF(1000, 1000), 200, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ControlModifier);
190191
view->wheelEvent(&wheelevent);
191-
QWheelEvent wheelevent2(QPointF(1000, 1000), 200, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
192+
QT_COMPAT_WHEEL_EVENT(wheelevent2, QPointF(1000, 1000), 200, Qt::MouseButton::NoButton, Qt::KeyboardModifier::NoModifier);
192193
view->wheelEvent(&wheelevent2);
193-
QWheelEvent wheelevent3(QPointF(1000, 1000), 200, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
194+
QT_COMPAT_WHEEL_EVENT(wheelevent3, QPointF(1000, 1000), 200, Qt::MouseButton::NoButton, Qt::KeyboardModifier::ShiftModifier);
194195
view->wheelEvent(&wheelevent3);
195196
}
196197

0 commit comments

Comments
 (0)