Skip to content

Commit

Permalink
调整使用frameless库的qt范围
Browse files Browse the repository at this point in the history
  • Loading branch information
czyt1988 committed Nov 14, 2023
1 parent c4cca96 commit 1980130
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 30 deletions.
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
11 changes: 4 additions & 7 deletions SARibbonBar.pri
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}

Expand Down
11 changes: 4 additions & 7 deletions src/SARibbon.pri
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}

Expand Down
14 changes: 5 additions & 9 deletions src/SARibbonBar/SARibbonBar.pri
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 5 additions & 4 deletions src/example/StaticExample/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 1980130

Please sign in to comment.