support QT5/6,support spited extra QT styles.

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-01-14 18:41:50 +08:00
parent 7b306e4c09
commit bf196b5a69
3 changed files with 52 additions and 33 deletions

View File

@ -1,4 +1,4 @@
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui Widgets Svg Xml) find_package(Qt${CM_QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui Widgets Svg Xml)
SET(CMQT_INCLUDE_PATH ${CMQT_ROOT_INCLUDE_PATH}/hgl/qt) SET(CMQT_INCLUDE_PATH ${CMQT_ROOT_INCLUDE_PATH}/hgl/qt)
@ -37,4 +37,4 @@ include(style/style.cmake)
add_cm_library(CMQT "CM" ${CMQT_DIALOG_FILES} ${CMQT_IMAGE_FILES} ${CMQT_MENU_FILES} ${CMQT_STYLE_FILES}) add_cm_library(CMQT "CM" ${CMQT_DIALOG_FILES} ${CMQT_IMAGE_FILES} ${CMQT_MENU_FILES} ${CMQT_STYLE_FILES})
target_link_libraries(CMQT PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Svg Qt5::Xml) target_link_libraries(CMQT PUBLIC Qt${CM_QT_MAJOR_VERSION}::Core Qt${CM_QT_MAJOR_VERSION}::Gui Qt${CM_QT_MAJOR_VERSION}::Widgets Qt${CM_QT_MAJOR_VERSION}::Svg Qt${CM_QT_MAJOR_VERSION}::Xml)

View File

@ -3,6 +3,8 @@
#include<QStyleFactory> #include<QStyleFactory>
#include<QApplication> #include<QApplication>
#ifdef USE_EXTRA_QT_STYLE
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
QStyle *CreateBB10BrightStyle(); QStyle *CreateBB10BrightStyle();
QStyle *CreateBB10DarkStyle(); QStyle *CreateBB10DarkStyle();
@ -12,12 +14,15 @@ QStyle *CreateMotifStyle();
QStyle *CreatePlastiqueStyle(); QStyle *CreatePlastiqueStyle();
QT_END_NAMESPACE QT_END_NAMESPACE
#endif//USE_EXTRA_QT_STYLE
namespace hgl namespace hgl
{ {
namespace qt namespace qt
{ {
QT_USE_NAMESPACE QT_USE_NAMESPACE
#ifdef USE_EXTRA_QT_STYLE
struct CreateQTExtraStyleConfig struct CreateQTExtraStyleConfig
{ {
QString name; QString name;
@ -28,8 +33,8 @@ namespace hgl
{ {
#define DEF_QT_EXTRA_STYLE(name) {#name,Create##name##Style}, #define DEF_QT_EXTRA_STYLE(name) {#name,Create##name##Style},
DEF_QT_EXTRA_STYLE(BB10Bright) //DEF_QT_EXTRA_STYLE(BB10Bright)
DEF_QT_EXTRA_STYLE(BB10Dark) //DEF_QT_EXTRA_STYLE(BB10Dark)
DEF_QT_EXTRA_STYLE(Cleanlooks) DEF_QT_EXTRA_STYLE(Cleanlooks)
DEF_QT_EXTRA_STYLE(CDE) DEF_QT_EXTRA_STYLE(CDE)
DEF_QT_EXTRA_STYLE(Motif) DEF_QT_EXTRA_STYLE(Motif)
@ -37,6 +42,7 @@ namespace hgl
#undef DEF_QT_EXTRA_STYLE #undef DEF_QT_EXTRA_STYLE
}; };
#endif//USE_EXTRA_QT_STYLE
const QString GetApplicationStyle() const QString GetApplicationStyle()
{ {
@ -46,9 +52,11 @@ namespace hgl
const QStringList GetStyleList() const QStringList GetStyleList()
{ {
QStringList list=QStyleFactory::keys(); QStringList list=QStyleFactory::keys();
#ifdef USE_EXTRA_QT_STYLE
for(int i = 0;i < sizeof(qt_extra_styles) / sizeof(CreateQTExtraStyleConfig);i++) for(int i = 0;i < sizeof(qt_extra_styles) / sizeof(CreateQTExtraStyleConfig);i++)
list << qt_extra_styles[i].name; list << qt_extra_styles[i].name;
#endif//USE_EXTRA_QT_STYLE
return list; return list;
} }
@ -57,6 +65,7 @@ namespace hgl
{ {
QStyle *s=nullptr; QStyle *s=nullptr;
#ifdef USE_EXTRA_QT_STYLE
for(int i = 0;i < sizeof(qt_extra_styles) / sizeof(CreateQTExtraStyleConfig);i++) for(int i = 0;i < sizeof(qt_extra_styles) / sizeof(CreateQTExtraStyleConfig);i++)
{ {
if(style_name.compare(qt_extra_styles[i].name, Qt::CaseInsensitive) == 0) if(style_name.compare(qt_extra_styles[i].name, Qt::CaseInsensitive) == 0)
@ -67,6 +76,7 @@ namespace hgl
} }
if(!s) if(!s)
#endif//USE_EXTRA_QT_STYLE
s=QStyleFactory::create(style_name); s=QStyleFactory::create(style_name);
if(s) if(s)

View File

@ -1,34 +1,43 @@
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets) find_package(Qt${CM_QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets)
include_directories(${Qt5Widgets_PRIVATE_INCLUDE_DIRS}) if(CM_QT_MAJOR_VERSION VERSION_EQUAL "5")
include_directories(${Qt5Widgets_PRIVATE_INCLUDE_DIRS})
include_directories(${CMQT_STYLE_PATH}/shared) elseif(CM_QT_MAJOR_VERSION VERSION_EQUAL "6")
file(GLOB QTStyleSharedFiles ${CMQT_STYLE_PATH}/shared/*.*) include_directories(${Qt6Widgets_PRIVATE_INCLUDE_DIRS})
endif()
include_directories(${CMQT_STYLE_PATH}/bb10style)
file(GLOB QTBB10StyleFiles ${CMQT_STYLE_PATH}/bb10style/*.*)
include_directories(${CMQT_STYLE_PATH}/cleanlooks)
file(GLOB QTCleanLookStyleFiles ${CMQT_STYLE_PATH}/cleanlooks/*.*)
include_directories(${CMQT_STYLE_PATH}/motif)
file(GLOB QTMotifStyleFiles ${CMQT_STYLE_PATH}/motif/*.*)
include_directories(${CMQT_STYLE_PATH}/plastique)
file(GLOB QTPlastiqueStyleFiles ${CMQT_STYLE_PATH}/plastique/*.*)
SET(CM_QT_STYLE_SOURCE ${CMQT_STYLE_PATH}/CMQTStyle.cpp) SET(CM_QT_STYLE_SOURCE ${CMQT_STYLE_PATH}/CMQTStyle.cpp)
source_group("QT Style" FILES ${CM_QT_STYLE_SOURCE}) source_group("QT Style" FILES ${CM_QT_STYLE_SOURCE})
source_group("QT Style\\Shared" FILES ${QTStyleSharedFiles})
source_group("QT Style\\BB10" FILES ${QTBB10StyleFiles})
source_group("QT Style\\Cleanlooks" FILES ${QTCleanLookStyleFiles})
source_group("QT Style\\Motif" FILES ${QTMotifStyleFiles})
source_group("QT Style\\Plastique" FILES ${QTPlastiqueStyleFiles})
SET(CMQT_STYLE_FILES ${CM_QT_STYLE_SOURCE} SET(CMQT_STYLE_FILES ${CM_QT_STYLE_SOURCE})
${QTStyleSharedFiles}
${QTBB10StyleFiles} IF(CM_QT_EXTRA_STYLE)
${QTCleanLookStyleFiles} include_directories(${CMQT_STYLE_PATH}/shared)
${QTMotifStyleFiles} file(GLOB QTStyleSharedFiles ${CMQT_STYLE_PATH}/shared/*.*)
${QTPlastiqueStyleFiles})
include_directories(${CMQT_STYLE_PATH}/bb10style)
file(GLOB QTBB10StyleFiles ${CMQT_STYLE_PATH}/bb10style/*.*)
include_directories(${CMQT_STYLE_PATH}/cleanlooks)
file(GLOB QTCleanLookStyleFiles ${CMQT_STYLE_PATH}/cleanlooks/*.*)
include_directories(${CMQT_STYLE_PATH}/motif)
file(GLOB QTMotifStyleFiles ${CMQT_STYLE_PATH}/motif/*.*)
include_directories(${CMQT_STYLE_PATH}/plastique)
file(GLOB QTPlastiqueStyleFiles ${CMQT_STYLE_PATH}/plastique/*.*)
source_group("QT Style\\Shared" FILES ${QTStyleSharedFiles})
source_group("QT Style\\BB10" FILES ${QTBB10StyleFiles})
source_group("QT Style\\Cleanlooks" FILES ${QTCleanLookStyleFiles})
source_group("QT Style\\Motif" FILES ${QTMotifStyleFiles})
source_group("QT Style\\Plastique" FILES ${QTPlastiqueStyleFiles})
SET(CMQT_STYLE_FILES ${CMQT_STYLE_FILES}
${QTStyleSharedFiles}
${QTBB10StyleFiles}
${QTCleanLookStyleFiles}
${QTMotifStyleFiles}
${QTPlastiqueStyleFiles})
endif(CM_QT_EXTRA_STYLE)