feat(tests): add Qt5/Qt6 compatibility support#52
feat(tests): add Qt5/Qt6 compatibility support#52deepin-bot[bot] merged 1 commit intolinuxdeepin:develop/20260424from
Conversation
pppanghu77
commented
Apr 27, 2026
- Add conditional package finding for Qt6 or Qt5 dependencies
- Use generator expressions to link appropriate Qt version libraries
- Add preprocessor conditionals for Qt6 vs Qt5 API usage
- Maintain backward compatibility with both Qt frameworks
- Add conditional package finding for Qt6 or Qt5 dependencies - Use generator expressions to link appropriate Qt version libraries - Add preprocessor conditionals for Qt6 vs Qt5 API usage - Maintain backward compatibility with both Qt frameworks
deepin pr auto review这份代码修改的主要目的是为了兼容 Qt5 和 Qt6 两个版本,同时对版权年份进行了更新。以下是对代码的详细审查和改进建议: 1. 语法逻辑审查CMakeLists.txt 部分:
main.cpp 部分:
2. 代码质量建议CMakeLists.txt 改进建议: # 建议:显式定义 Qt 版本变量,提高可读性
if(Qt6_FOUND)
set(QT_VERSION_MAJOR 6)
find_package(Qt6 REQUIRED COMPONENTS Core Test)
find_package(Dtk6 REQUIRED COMPONENTS Core)
else()
set(QT_VERSION_MAJOR 5)
find_package(Qt5 REQUIRED COMPONENTS Core Test)
find_package(DtkCore REQUIRED)
endif()然后在链接部分使用: target_link_libraries(docparser_test
PRIVATE
docparser
Qt${QT_VERSION_MAJOR}::Core
$<IF:$<BOOL:${Qt6_FOUND}>,Dtk6::Core,Dtk::Core>
)main.cpp 改进建议: // 建议:将编码转换逻辑提取为独立函数,提高可测试性
static std::string convertToUtf8(const std::string& content, const QString& fromEncoding)
{
if (fromEncoding.toLower() == "utf-8") {
return content;
}
QByteArray in = QByteArray::fromStdString(content);
QByteArray out;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
Dtk::Core::DTextEncoding::convertTextEncodingEx(in, out, "utf-8", fromEncoding);
#else
Dtk::Core::DTextEncoding::convertTextEncoding(in, out, "utf-8", fromEncoding);
#endif
return out.toStdString();
}
// 在main函数中使用
if (fromEncoding.toLower() != "utf-8") {
content = convertToUtf8(content, fromEncoding);
}3. 代码性能建议
4. 代码安全建议
5. 其他建议
总结这份代码修改整体质量良好,正确实现了 Qt5 和 Qt6 的兼容性。主要改进方向在于:
这些改进将使代码更加健壮和易于维护。 |
只考虑当前情况是demo测试,不存在 支持qt4 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: max-lvs, pppanghu77 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/forcemerge |
|
This pr force merged! (status: unstable) |
43a5784
into
linuxdeepin:develop/20260424