From 198013003e937a16b886ba76a3e3bb92cd146694 Mon Sep 17 00:00:00 2001 From: czyt1988 Date: Tue, 14 Nov 2023 09:00:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BD=BF=E7=94=A8frameless?= =?UTF-8?q?=E5=BA=93=E7=9A=84qt=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 6 +++--- SARibbonBar.pri | 11 ++++------- src/SARibbon.pri | 11 ++++------- src/SARibbonBar/SARibbonBar.pri | 14 +++++--------- src/example/StaticExample/CMakeLists.txt | 9 +++++---- 5 files changed, 21 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index feb90ff..4554534 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,11 +31,11 @@ if(${QT_VERSION_MAJOR} EQUAL 5) set(SARIBBON_USE_FRAMELESS_LIB OFF) endif() elseif(${QT_VERSION_MAJOR} EQUAL 6) - # qt版本为6,判断是否小版本大于4 - if(${QT_VERSION_MINOR} GREATER_EQUAL 0) - #6.0及以上可以使用frameless + # qt版本为6,判断是否小版本大于6.1 + if(${QT_VERSION_MINOR} GREATER_EQUAL 1) set(SARIBBON_USE_FRAMELESS_LIB ON) else() + #6.0及bug多多无法使用frameless set(SARIBBON_USE_FRAMELESS_LIB OFF) endif() endif() diff --git a/SARibbonBar.pri b/SARibbonBar.pri index 58d8be3..f8ca72b 100644 --- a/SARibbonBar.pri +++ b/SARibbonBar.pri @@ -3,17 +3,14 @@ INCLUDEPATH += $$PWD/src/SARibbonBar DEPENDPATH += $$PWD/src/SARibbonBar -greaterThan(QT_MAJOR_VERSION, 4){ - # 目前 frameless支持qt5.14,qt5.15,qt6.4+,除了上诉版本,都使用不了 +equals(QT_MAJOR_VERSION, 5){ greaterThan(QT_MINOR_VERSION, 13){ SA_RIBBON_CONFIG += use_frameless } }else{ - # Qt6,qt6.4+可使用frameless - greaterThan(QT_MAJOR_VERSION, 5){ - greaterThan(QT_MINOR_VERSION, 3){ - SA_RIBBON_CONFIG += use_frameless - } +# qt6.0不支持 + greaterThan(QT_MINOR_VERSION, 0){ + SA_RIBBON_CONFIG += use_frameless } } diff --git a/src/SARibbon.pri b/src/SARibbon.pri index d8289cb..47c0c92 100644 --- a/src/SARibbon.pri +++ b/src/SARibbon.pri @@ -11,17 +11,14 @@ # 这里判断qt的版本看看是否适合使用frameless,如果适合使用SA_RIBBON_CONFIG将加入use_frameless -greaterThan(QT_MAJOR_VERSION, 4){ - # 目前 frameless支持qt5.14,qt5.15,qt6.4+,除了上诉版本,都使用不了 +equals(QT_MAJOR_VERSION, 5){ greaterThan(QT_MINOR_VERSION, 13){ SA_RIBBON_CONFIG += use_frameless } }else{ - # Qt6,qt6.4+可使用frameless - greaterThan(QT_MAJOR_VERSION, 5){ - greaterThan(QT_MINOR_VERSION, 3){ - SA_RIBBON_CONFIG += use_frameless - } +# qt6.0不支持 + greaterThan(QT_MINOR_VERSION, 0){ + SA_RIBBON_CONFIG += use_frameless } } diff --git a/src/SARibbonBar/SARibbonBar.pri b/src/SARibbonBar/SARibbonBar.pri index 263dbcb..3d7bb6d 100644 --- a/src/SARibbonBar/SARibbonBar.pri +++ b/src/SARibbonBar/SARibbonBar.pri @@ -4,23 +4,19 @@ # 2.要预定义FRAMELESSHELPER_CORE_LIBRARY宏,这样才能导出符号 # 3.要预定义FRAMELESSHELPER_WIDGETS_LIBRARY宏,这样才能导出符号 -greaterThan(QT_MAJOR_VERSION, 4){ - # 目前 frameless支持qt5.14,qt5.15,qt6.4+,除了上诉版本,都使用不了 +equals(QT_MAJOR_VERSION, 5){ greaterThan(QT_MINOR_VERSION, 13){ SA_RIBBON_CONFIG += use_frameless } }else{ - # Qt6,qt6.4+可使用frameless - greaterThan(QT_MAJOR_VERSION, 5){ - greaterThan(QT_MINOR_VERSION, 3){ - SA_RIBBON_CONFIG += use_frameless - } +# qt6.0不支持 + greaterThan(QT_MINOR_VERSION, 0){ + SA_RIBBON_CONFIG += use_frameless } } - contains( SA_RIBBON_CONFIG, use_frameless ) { - message("use_frameless lib,compile with c+=17") + message("use frameless lib,compile with c+=17") # 引入第三方库frameless后,必须要求c++17 !contains(CONFIG,C++17){ CONFIG += c++17 diff --git a/src/example/StaticExample/CMakeLists.txt b/src/example/StaticExample/CMakeLists.txt index f3ccda7..ed8bc25 100644 --- a/src/example/StaticExample/CMakeLists.txt +++ b/src/example/StaticExample/CMakeLists.txt @@ -25,7 +25,7 @@ find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED) # 在加载qt版本后,需要下面这段开判断是否使用framelss -# 根据qt版本选择是否使用frameless库,目前frameless库支持qt5.14,qt5.15,qt6.4+,除了上诉版本,都使用不了 +# 根据qt版本选择是否使用frameless库,目前frameless库支持qt5.14,qt5.15,qt6.1+,除了上诉版本,都使用不了 if(${QT_VERSION_MAJOR} EQUAL 5) # qt版本为5,判断是否小版本大于14 if(${QT_VERSION_MINOR} GREATER_EQUAL 14) @@ -35,14 +35,15 @@ if(${QT_VERSION_MAJOR} EQUAL 5) set(SARIBBON_USE_FRAMELESS_LIB OFF) endif() elseif(${QT_VERSION_MAJOR} EQUAL 6) - # qt版本为6,判断是否小版本大于4 - if(${QT_VERSION_MINOR} GREATER_EQUAL 4) - #6.4及以上可以使用frameless + # qt版本为6,判断是否小版本大于6.1 + if(${QT_VERSION_MINOR} GREATER_EQUAL 1) set(SARIBBON_USE_FRAMELESS_LIB ON) else() + #6.0及bug多多无法使用frameless set(SARIBBON_USE_FRAMELESS_LIB OFF) endif() endif() + # 注意后面所有SARIBBON_USE_FRAMELESS_LIB的判断,都是和framelss有关 # 如果是使用frameless库,需要c++17,否则c++11足以 if(SARIBBON_USE_FRAMELESS_LIB)