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)
@ -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})
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<QApplication>
#ifdef USE_EXTRA_QT_STYLE
QT_BEGIN_NAMESPACE
QStyle *CreateBB10BrightStyle();
QStyle *CreateBB10DarkStyle();
@ -12,12 +14,15 @@ QStyle *CreateMotifStyle();
QStyle *CreatePlastiqueStyle();
QT_END_NAMESPACE
#endif//USE_EXTRA_QT_STYLE
namespace hgl
{
namespace qt
{
QT_USE_NAMESPACE
#ifdef USE_EXTRA_QT_STYLE
struct CreateQTExtraStyleConfig
{
QString name;
@ -28,8 +33,8 @@ namespace hgl
{
#define DEF_QT_EXTRA_STYLE(name) {#name,Create##name##Style},
DEF_QT_EXTRA_STYLE(BB10Bright)
DEF_QT_EXTRA_STYLE(BB10Dark)
//DEF_QT_EXTRA_STYLE(BB10Bright)
//DEF_QT_EXTRA_STYLE(BB10Dark)
DEF_QT_EXTRA_STYLE(Cleanlooks)
DEF_QT_EXTRA_STYLE(CDE)
DEF_QT_EXTRA_STYLE(Motif)
@ -37,6 +42,7 @@ namespace hgl
#undef DEF_QT_EXTRA_STYLE
};
#endif//USE_EXTRA_QT_STYLE
const QString GetApplicationStyle()
{
@ -46,9 +52,11 @@ namespace hgl
const QStringList GetStyleList()
{
QStringList list=QStyleFactory::keys();
#ifdef USE_EXTRA_QT_STYLE
for(int i = 0;i < sizeof(qt_extra_styles) / sizeof(CreateQTExtraStyleConfig);i++)
list << qt_extra_styles[i].name;
#endif//USE_EXTRA_QT_STYLE
return list;
}
@ -57,6 +65,7 @@ namespace hgl
{
QStyle *s=nullptr;
#ifdef USE_EXTRA_QT_STYLE
for(int i = 0;i < sizeof(qt_extra_styles) / sizeof(CreateQTExtraStyleConfig);i++)
{
if(style_name.compare(qt_extra_styles[i].name, Qt::CaseInsensitive) == 0)
@ -67,6 +76,7 @@ namespace hgl
}
if(!s)
#endif//USE_EXTRA_QT_STYLE
s=QStyleFactory::create(style_name);
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})
include_directories(${CMQT_STYLE_PATH}/shared)
file(GLOB QTStyleSharedFiles ${CMQT_STYLE_PATH}/shared/*.*)
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/*.*)
if(CM_QT_MAJOR_VERSION VERSION_EQUAL "5")
include_directories(${Qt5Widgets_PRIVATE_INCLUDE_DIRS})
elseif(CM_QT_MAJOR_VERSION VERSION_EQUAL "6")
include_directories(${Qt6Widgets_PRIVATE_INCLUDE_DIRS})
endif()
SET(CM_QT_STYLE_SOURCE ${CMQT_STYLE_PATH}/CMQTStyle.cpp)
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}
${QTStyleSharedFiles}
${QTBB10StyleFiles}
${QTCleanLookStyleFiles}
${QTMotifStyleFiles}
${QTPlastiqueStyleFiles})
SET(CMQT_STYLE_FILES ${CM_QT_STYLE_SOURCE})
IF(CM_QT_EXTRA_STYLE)
include_directories(${CMQT_STYLE_PATH}/shared)
file(GLOB QTStyleSharedFiles ${CMQT_STYLE_PATH}/shared/*.*)
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)