• 2768阅读
  • 5回复

QFluentWidgets: 基于 C++ Qt 的 Fluent Design 组件库 [复制链接]

上一主题 下一主题
离线shokokawaii
 

只看楼主 倒序阅读 楼主  发表于: 2023-10-20

简介


QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库,内置超过 150 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题色。搭配所见即所得的 Fluent Designer 软件,只需拖拖拽拽,不用编写一行 QSS,就能快速搭建现代化软件界面
官网地址:https://qfluentwidgets.com/ https://
仓库地址:https://github.com/zhiyiYo/PyQt-Fluent-Widgets https://-Fluent-Widgets
演示视频:https://www.bilibili.com/video/BV12c411L73q/ https://www.94y1a7Yv
演示程序:https://github.com/zhiyiYo/PyQt-Fluent-Widgets/releases 下载解压 QFluentWidgets_v1.x.x.zip


编译示例

Qt5 为例(Qt6 也支持),将 libQFluentWidgets.dll、libFramlessHelperCore.dll和 libFramelessHelperWidgets.dll 放在 lib 文件夹中,QFluentWidgets 头文件放在 include 文件夹中,项目结构如下图所示





Qt5 示例项目结构接着在终端输入指令进行编译,其中 -DCMAKE_PREFIX_PATH 用于设置本机 Qt5 SDK 的路径:
  1. cmake -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="D:/Qt/5.15.2/mingw81_64" -G "MinGW Makefiles" .
  2. cd build
  3. cmake --build . --config Release --target all --parallel


编译完成后可以在 build/bin 目录下看到所有生成的 exe 示例文件:



生成文件



搭配 Fluent Designer

项目结构如下图所示:







其中 LoginWindow.py.ui 是使用 Fluent Designer 拖拽 PyQt-Fluent-Widgets 组件生成的 ui 文件,预览效果如下:





将该 ui 文件拖拽到 Fluent Studio 软件的设计师界面中,点击转换按钮,即可得到 C++ 组件库使用的 ui 文件。





项目使用的 CMakeLists.txt 代码如下:
  1. set(DEMO_NAME LoginDemo)
  2. cmake_minimum_required(VERSION 3.5)
  3. project(${DEMO_NAME} VERSION 1.0)
  4. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
  5. set(CMAKE_CXX_STANDARD 17)
  6. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  7. set(CMAKE_AUTOUIC ON)
  8. set(CMAKE_AUTOMOC ON)
  9. set(CMAKE_AUTORCC ON)
  10. find_package(Qt5 COMPONENTS Widgets Multimedia REQUIRED)
  11. # -----------------------------------------------------------------------------
  12. file(GLOB inc_files ${CMAKE_SOURCE_DIR}/*.h)
  13. file(GLOB src_files ${CMAKE_SOURCE_DIR}/*.cpp)
  14. qt5_wrap_ui(UI_FILES ${CMAKE_SOURCE_DIR}/ui/LoginWindow.ui)
  15. # add resource
  16. SET(RCC_FILES ${CMAKE_SOURCE_DIR}/login.qrc)
  17. qt5_add_resources(RCC_SOURCES ${RCC_FILES})
  18. # 设置 dll 文件夹
  19. link_directories(${CMAKE_SOURCE_DIR}/lib)
  20. add_executable(${DEMO_NAME} ${src_files} ${inc_files} ${UI_FILES} ${RCC_SOURCES})
  21. target_link_libraries(${PROJECT_NAME} PRIVATE Qt::Widgets QFluentWidgets FramelessHelperCore FramelessHelperWidgets)
  22. # 设置头文件搜索路径
  23. target_include_directories(${PROJECT_NAME}
  24.     PRIVATE
  25.         ${CMAKE_SOURCE_DIR}/include
  26.         ${CMAKE_SOURCE_DIR}/include/framelesshelper/include
  27.         ${CMAKE_SOURCE_DIR}/include/framelesshelper/src/core
  28.         ${CMAKE_SOURCE_DIR}/include/framelesshelper/src/widgets
  29.         ${CMAKE_SOURCE_DIR}/include/framelesshelper/qmake/inc/core
  30. )
  31. # 拷贝 dll 到 bin 目录
  32. configure_file(${CMAKE_SOURCE_DIR}/lib/libFramelessHelperCore.dll ${CMAKE_SOURCE_DIR}/build/bin/libFramelessHelperCore.dll COPYONLY)
  33. configure_file(${CMAKE_SOURCE_DIR}/lib/libFramelessHelperWidgets.dll ${CMAKE_SOURCE_DIR}/build/bin/libFramelessHelperWidgets.dll COPYONLY)
  34. configure_file(${CMAKE_SOURCE_DIR}/lib/libQFluentWidgets.dll ${CMAKE_SOURCE_DIR}/build/bin/libQFluentWidgets.dll COPYONLY)



编译指令不变,双击 build/bin/LoginWindow.exe 就能看到效果:







写在最后

C++ 组件库需要购买许可证才能拿到头文件和链接库使用,如果想提前体验运行效果,可以安装 Python 组件库并运行各个 demo.py,或者直接下载编译好的 PyQt-Fluent-Widgets-Gallery,Gallery 中包含了一大部分组件,最终效果和 C++ 是一样的。





5条评分好评度+2贡献值+1金钱+10威望+1
aiyaya 好评度 +1 支持! 2023-11-07
20091001753 好评度 +1 - 2023-10-21
20091001753 贡献值 +1 - 2023-10-21
20091001753 威望 +1 - 2023-10-21
20091001753 金钱 +10 - 2023-10-21
QFluentWidgets 是基于 Qt 的 Fluent Designer 组件库,内置超过 160 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题色。搭配所见即所得的 Fluent Designer 软件,只需拖拖拽拽,不用编写一行 QSS,就能快速搭建现代化界面。有意者可联系邮箱或者 QQ~
官网:https://qfluentwidgets.com/zh/ (需要科学上网)
邮箱:shokokawaii@foxmail.com
QQ:1953658489
离线toby520

只看该作者 1楼 发表于: 2023-10-30
            
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线aiyaya

只看该作者 2楼 发表于: 2023-11-07
运行效果可以啊,作为小白终于不用瞎调样式表了,想买一套试试看
离线boylebao

只看该作者 3楼 发表于: 2023-11-23
    
为Qt打造具有强大生产力的软件。
离线samhuilong

只看该作者 4楼 发表于: 2023-11-24
能问下大佬,qfluentwidgets的官方网站是用什么写的?
离线shokokawaii

只看该作者 5楼 发表于: 2023-11-30
回 samhuilong 的帖子
samhuilong:能问下大佬,qfluentwidgets的官方网站是用什么写的? (2023-11-24 12:55) 

vuepress
QFluentWidgets 是基于 Qt 的 Fluent Designer 组件库,内置超过 160 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题色。搭配所见即所得的 Fluent Designer 软件,只需拖拖拽拽,不用编写一行 QSS,就能快速搭建现代化界面。有意者可联系邮箱或者 QQ~
官网:https://qfluentwidgets.com/zh/ (需要科学上网)
邮箱:shokokawaii@foxmail.com
QQ:1953658489
快速回复
限100 字节
 
上一个 下一个