Win10系统下VS2019编译Qt的Ribbon控件 -- SARibbon

news2024/11/19 23:42:06

Win10系统下VS2019编译Qt的Ribbon控件 -- SARibbon

  • 一、源码下载
  • 二、源码编译
  • 三、封装成库
  • 四、Qt配库
  • 五、运行测试


原文链接:https://blog.csdn.net/m0_51204289/article/details/126431338

一、源码下载

【1】https://gitee.com/czyt1988/SARibbon/tree/master/src
【2】Qt下的Ribbon控件——SARibbon

二、源码编译

1、修改SARibbonBar文件夹下的CMakelists.txt文件,修改后的CMakelists.txt文件如下所示:

set(LIB_NAME SARibbonBar)

set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

qt5_add_resources(QRCS resource.qrc)

SET(HEADER_FILES
    SAFramelessHelper.h
    SARibbonStyleOption.h
    SARibbonActionsManager.h
    SARibbonBar.h
    SARibbonCustomizeData.h
    SARibbonCustomizeDialog.h
    SARibbonCustomizeWidget.h
    SARibbonMainWindow.h
    SAWindowButtonGroup.h
    SARibbonApplicationButton.h
    SARibbonTabBar.h
    SARibbonCategory.h
    SARibbonContextCategory.h
    SARibbonPannel.h
    SARibbonToolButton.h
    SARibbonMenu.h
    SARibbonGlobal.h
    SARibbonPannelOptionButton.h
    SARibbonSeparatorWidget.h
    SARibbonCategoryLayout.h
    SARibbonGallery.h
    SARibbonControlButton.h
    SARibbonGalleryGroup.h
    SARibbonGalleryItem.h
    SARibbonComboBox.h
    SARibbonElementCreateDelegate.h
    SARibbonElementManager.h
    SARibbonDrawHelper.h
    SARibbonLineEdit.h
    SARibbonCheckBox.h
    SARibbonButtonGroupWidget.h
    SARibbonStackedWidget.h
    SARibbonQuickAccessBar.h
    SARibbonCtrlContainer.h
    SARibbonPannelLayout.h
    SARibbonPannelItem.h
    SARibbonLineWidgetContainer.h
)

qt5_wrap_cpp(MOC_HEADER_FILES ${HEADER_FILES})

SET(SOURCE_FILES
    SAFramelessHelper.cpp
    SARibbonStyleOption.cpp
    SARibbonActionsManager.cpp
    SARibbonBar.cpp
    SARibbonCustomizeData.cpp
    SARibbonCustomizeDialog.cpp
    SARibbonCustomizeWidget.cpp
    SARibbonMainWindow.cpp
    SAWindowButtonGroup.cpp
    SARibbonApplicationButton.cpp
    SARibbonTabBar.cpp
    SARibbonCategory.cpp
    SARibbonContextCategory.cpp
    SARibbonPannel.cpp
    SARibbonToolButton.cpp
    SARibbonMenu.cpp
    SARibbonPannelOptionButton.cpp
    SARibbonSeparatorWidget.cpp
    SARibbonCategoryLayout.cpp
    SARibbonGallery.cpp
    SARibbonControlButton.cpp
    SARibbonGalleryGroup.cpp
    SARibbonGalleryItem.cpp
    SARibbonComboBox.cpp
    SARibbonElementCreateDelegate.cpp
    SARibbonElementManager.cpp
    SARibbonDrawHelper.cpp
    SARibbonLineEdit.cpp
    SARibbonCheckBox.cpp
    SARibbonButtonGroupWidget.cpp
    SARibbonStackedWidget.cpp
    SARibbonQuickAccessBar.cpp
    SARibbonCtrlContainer.cpp
    SARibbonPannelLayout.cpp
    SARibbonPannelItem.cpp
    SARibbonLineWidgetContainer.cpp
)

add_definitions(-DSA_RIBBON_BAR_MAKE_LIB)

add_library(${LIB_NAME} SHARED
    ${QRCS}
    ${MOC_HEADER_FILES}
    ${HEADER_FILES}
    ${SOURCE_FILES}
)

target_link_libraries(${LIB_NAME} Qt5::Widgets)

set_target_properties(${LIB_NAME} PROPERTIES
	AUTOMOC TRUE
	AUTOUIC TRUE
	AUTORCC TRUE
	DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}
	VERSION ${PROJECT_VERSION}
	SOVERSION ${PROJECT_VERSION}
)
target_include_directories(${LIB_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
install(TARGETS ${LIB_NAME}
	RUNTIME DESTINATION bin
	LIBRARY DESTINATION bin
	ARCHIVE DESTINATION lib
)
install(FILES ${HEADER_FILES} DESTINATION include)

if(WIN32)
	create_win32_resource_version(
		TARGET ${LIB_NAME}
		FILENAME ${LIB_NAME}
		EXT "dll"
		DESCRIPTION "Ribbon control library for Qt"
	)
endif()

2、使用Cmake编译即可。

三、封装成库

1、编译成功后点击生成,在中出现如下图所示的Debug和Release文件夹
在这里插入图片描述
2、新建lib文件夹将Debug文件夹中的SARibbonBard.lib和Release文件夹中的SARibbonBar.lib复制粘贴进lib文件夹。
3、新建bin文件夹将Debug文件夹中的SARibbonBard.dll和SARibbonBard.pdb以及Release文件夹中的SARibbonBar.dll复制粘贴进bin文件夹。
4、新建include文件夹将src——SARibbonBar中的内容复制粘贴进include文件夹,即可完成库的封装。

四、Qt配库

1、新建QtWidgetsApplication应用程序
2、在属性页添加相应的包含目录和库目录。

在这里插入图片描述
3、在链接器中输入附加依赖项
在这里插入图片描述

五、运行测试

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python开发工具PyCharm v2023.1正式发布——推出全新的用户界面

JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。 PyCharm v2023.1正式版下载 更新日志如下: 推出新的…

【UE】三步创建自动追踪自爆可造成伤害的敌人

效果 可以看到造成伤害时在右上角打印玩家当前的生命值 步骤 1. 首先拖入导航网格体边界体积 2. 首先复制一份“ThirdPersonCharacter”,命名为“ExplodingAI” 打开“ExplodingAI”,删除事件图表中所有节点 添加一个panw感应组件 在事件图表中添加如…

机器学习实战:Python基于PCA主成分分析进行降维分类(七)

文章目录 1 前言1.1 主成分分析的介绍1.2 主成分分析的应用[](https://chat.openai.com/ "openai") 2 Mushroom分类数据演示2.1 导入函数2.2 导入数据2.3 PCA可视化2.4 PCA散点图2.5 PCA散点图 3 讨论 1 前言 1.1 主成分分析的介绍 主成分分析(Principa…

Consistency Models

Consistency Models- 理解 问题定义研究动机本文中心论点 相关工作和进展Consistency Models创新点review扩散模型 Consistency Model-Definition一致性模型的定义一致性模型参数化一致性模型采样 Training Consistency Models via DistillationTraining Consistency Models in…

ChatGPT on Notes/Domino

大家好,才是真的好。 随着春节过去,小盆友也开始陆续到幼儿园报到,我们又回来和大家一起继续Notes/Domino传奇之旅。 去年年底ChatGPT横空出世,让大家震惊了一把。 可能有些老Notes/Domino人,还不知道ChatGPT是什么…

MySQL_第11章_数据处理之增删改

第11章_数据处理之增删改 讲师:尚硅谷 - 宋红康(江湖人称:康师傅) 官网: http://www.atguigu.com 1. 插入数据 1.1 实际问题 解决方式:使用 INSERT 语句向表中插入数据。 1.2 方式1:VA…

在OpenHarmony 开发者大会2023,听见百业同鸣

加强开源,助推中国科技强国战略,已经成为中国科技繁荣的必要条件,“十四五”规划中首次提到了“开源”两个字,并明确指出,支持数字技术开源社区等创新联合体的发展。 在中国发展开源,有着拓荒的色彩&#x…

Springsecurity笔记14-18章JWT+Spring Security+redis+mysql 实现认证【动力节点】

15 SpringSecurity 集成thymeleaf 此项目是在springsecurity-12-database-authorization-method 的基础上进行 复制springsecurity-12-database-authorization-method 并重命名为springsecurity-13-thymeleaf 15.1 添加thymeleaf依赖 | <groupId>org.springframewor…

西门子s7-300/400PLC-MMC密码解密

西门子s7-300/400-MMC密码解密 简介西门子加密工具及操作密码验证 简介 目前&#xff0c;市面上或网络上有很多针对s7-200&#xff0c;300&#xff0c;400&#xff0c;1200&#xff0c;1500的密码解密破解软件&#xff0c;但很多时候只能解数字或英文密码&#xff0c;对设置了…

Linux-初学者系列——篇幅5_系统目录相关命令

系统目录相关命令-目录 一、系统目录层级1、目录绝对路径2、目录相对路径3、目录层级结构查看-tree不带任何参数获取目录结构数据信息以树形结构显示目录下的所有内容&#xff08;包含隐藏信息&#xff09;只列出根目录下第一层的目录结构信息只显示目录结构信息中的所有目录信…

ThingsBoard如何自定义topic

1、背景 业务需要,mqtt设备,他们协议和topic都定义好了,想使用tb的mqtt直接接入设备,但是设备的topic和tb规定的不一致,该如何解决呢? 2、要求 设备的topic要求规则是这样的 首先第二点是满足的,网关的发布主题是可以通过tb的设备配置来自定义遥测和属性的topic,问题…

qiankun应用级缓存-多页签缓存

需求&#xff1a; A&#xff1a;主应用 B&#xff1a;子应用 项目框架&#xff1a;vue2 全家桶 qiankun 应用间切换需要保存页面缓存&#xff08;多页签缓存&#xff09;&#xff0c;通过vue keep-alive只能实现页面级缓存&#xff0c;在单独打开的应用里能实现缓存&#xf…

德国申请专利,发明,实用,外观专利申请详细步骤

一、德国专利申请途径 申请人可以向德国专利商标局直接递交申请。要求优先权的情况下根据《保护工业产权巴黎公约》需要在递交中国在先申请的12个月之内向德国专利商标局递交申请。 另外&#xff0c;通过PCT&#xff08;“Patent Cooperation Treaty”&#xff0c;即《专利合作…

【分享】免费的AI绘画网站(5个)

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 随着人工智能技术的不断发展&#xff0c;越来越多的AI绘画软件开始涌现&#xff0c;如果你想要免费享受AI绘画的乐趣&#xff0c;那你可要好好看下面的内容~ Vega AI创作平台 入口&#xff1a;https://rightbrain.art 一款专业的…

AIGC+RPA丨大语言模型赋能实在智能数字员工“超进化”

前不久&#xff0c;全球最大上市咨询公司埃森哲发布2023年技术愿景《When Atoms meet Bits》报告&#xff0c;并在当中深度解析到&#xff1a;生成式AI成为2023年四大技术发展趋势之一。 大型语言模型&#xff08;Large Language Model, LLM&#xff09;领域的研发和布局在国内…

如何科学判断研发团队是否在健康工作?(内附量表)

研发效能管理覆盖了交付速度、质量和价值三个维度&#xff0c;但文化建设、团队氛围和客户协作等其他因素对团队工作的影响又该如何度量和管理呢&#xff1f; LigaAI 在 John Cutler 的一篇分享中找到了答案&#xff1a;团队健康度评分。就像我们都很关心自己的身体健康一样&a…

《程序员面试金典(第6版)》面试题 16.02. 单词频率(哈希法,C++)

题目描述 设计一个方法&#xff0c;找出任意指定单词在一本书中的出现频率。 你的实现应该支持如下操作&#xff1a; WordsFrequency(book)构造函数&#xff0c;参数为字符串数组构成的一本书get(word)查询指定单词在书中出现的频率 示例&#xff1a; WordsFrequency word…

DevEco Studio 3.1 Beta新特性知多少

HUAWEI DevEco Studio是开发HarmonyOS应用及服务的一站式集成开发环境&#xff08;IDE&#xff09;。本次&#xff0c;DevEco Studio 3.1 Beta新增支持当前在市面上新的操作系统&#xff0c;如Windows11、macOS&#xff08;ARM&#xff09;操作系统&#xff0c;还面向HarmonyOS…

4.数据结构(0x3f:从周赛中学算法 2022下)

来自0x3f【从周赛中学算法 - 2022 年周赛题目总结&#xff08;下篇&#xff09;】&#xff1a;https://leetcode.cn/circle/discuss/WR1MJP/ 包括堆&#xff08;优先队列&#xff09;、单调栈、单调队列、字典树、并查集、树状数组、线段树等。 学习这些只是开始&#xff0c;能…

Pytorch对机器学习模型的安全漏洞攻击方法之Fast Gradient Sign Attack(FGSM,快速梯度符号攻击)

原论文&#xff1a;EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES 一般本人的习惯是先看论文熟悉它&#xff0c;然后代码去实现它&#xff0c;这样感觉要好点。因为论文讲解的比较全面和一些实验对比还有很多的引用等&#xff0c;另外大家知道好论文基本都是英文&#xff0c…