• 11657阅读
  • 32回复

QRibbon 菜单栏 [复制链接]

上一主题 下一主题
离线gnibuoz
 

只看楼主 正序阅读 楼主  发表于: 2020-06-27
— 本帖被 20091001753 从 Qt 作品展 移动到本区(2020-06-27) —
关键词: RIBBON

QRibbon
      Qt 实现的 Ribbon 风格菜单栏,基本思路是定制QTabWidget,通过QSS(样式表)实现显示样式的调整,QRibbon的原则是尽量不侵入正常业务逻辑的开发,所以在开发基于QMainWindow的程序时,可以按照正常的开发流程创建界面,创建普通的菜单栏以及菜单项及其信号槽关联,最后调用QRibbon::install(&mainWindow)函数即可自动创建出与QMainWindow原有QMenuBar相对应的Ribbon...

使用方法
  • 正常创建QMainWindow
  • 为QMainWindow添加菜单和菜单项(建议为所有菜单项都添加合适的图标,这样最终QRibbon就可以直接使用菜单项的图标作为按钮图标)
  • 将QRibbon库相关的所有文件添加至工程
  • 构造完成主界面后,调用如下代码即可实现QRibbon的添加:

                QRibbon::install(&mainWindow);

使用QRibbon::install(window)前后效果对比:




已将代码上传至github,记得fork+star[酷]: https://github.com/gnibuoz/QRibbon

        先上个效果图,后续更详细的实现过程,实现思路主要是重新实现一个QMenuBar 类,然后直接在QMainWindow的上将原有QMenuBar提升为自定义的RibbonBar,并直接从QMainWindow的QMenuBar里边获取菜单内容,自动构建Ribbon栏,这样实现的好处对用户的业务开发流程没有太大的侵入,用户完全可以在QMainWindow界面上实现各种信号/槽关联,事件响应,最后直接将原有的MenuBar提升为实现的类就可以了,后续有空再更新实现过程,整体还是比较简单的,基本是用QTabWidget+QToolButton实现的,期间遇到一些坑,配色什么的直接从word里边截图,然后用PS取得色。


原文链接:https://blog.csdn.net/gnibuoz/article/details/105970328源码放在GitHub上了,喜欢的记得Fork+Star,后面一段时间内应该会持续在GitHub上更新

————————————————
版权声明:本文为CSDN博主「星天阁主」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
14条评分好评度+3贡献值+3金钱+32威望+3
morg 金钱 +1 - 2022-06-23
hopping 金钱 +1 - 2020-09-22
mengkun 好评度 +1 优秀文章,支持!神马都是浮云 2020-07-05
mengkun 贡献值 +1 优秀文章,支持!神马都是浮云 2020-07-05
mengkun 威望 +1 优秀文章,支持!神马都是浮云 2020-07-05
mengkun 金钱 +10 优秀文章,支持!神马都是浮云 2020-07-05
lieber 好评度 +1 - 2020-07-03
lieber 贡献值 +1 - 2020-07-03
lieber 威望 +1 - 2020-07-03
lieber 金钱 +10 - 2020-07-03
12
我就是我,颜色不一样的烟火...
离线shokokawaii

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

只看该作者 31楼 发表于: 2023-10-06
在线zoubing

只看该作者 30楼 发表于: 2023-08-02
在线zoubing

只看该作者 29楼 发表于: 2022-03-19
回 309771096 的帖子
309771096:为什么这个插件会影响到QComboBox啊,QComboBox下拉箭头啥也看不到了,完全跟QLineEdit一样 (2021-11-26 09:33) 

这个应该跟Qt的BUG有关系哈,QComboBox在全屏应用下一直有这个BUG,可以去Qt的BUG列表中搜索下,解决方案是修改全屏显示的代码,不要调用MainWindow的全屏函数,直接获取显示器大小,并setGeometry实现
离线xliuzz

只看该作者 28楼 发表于: 2022-03-17
离线309771096

只看该作者 27楼 发表于: 2021-11-26
为什么这个插件会影响到QComboBox啊,QComboBox下拉箭头啥也看不到了,完全跟QLineEdit一样
离线gnibuoz

只看该作者 26楼 发表于: 2021-09-14
回 f12x45q56 的帖子
f12x45q56:这个真的是个好帖,感谢楼主的分享 (2020-12-19 14:05) 

我就是我,颜色不一样的烟火...
离线gnibuoz

只看该作者 25楼 发表于: 2021-09-14
回 lwfchat 的帖子
lwfchat:[表情]  [表情]  [表情]  (2021-07-01 22:07) 

我就是我,颜色不一样的烟火...
离线gnibuoz

只看该作者 24楼 发表于: 2021-09-14
回 深圳陈奕迅 的帖子
深圳陈奕迅:[表情]  [表情]  (2021-07-30 09:41) 

我就是我,颜色不一样的烟火...

只看该作者 23楼 发表于: 2021-07-30
  
离线gnibuoz

只看该作者 22楼 发表于: 2021-07-23
回 rpdhunter 的帖子
rpdhunter:非常不错的思路,准备在下个项目中借鉴,多谢楼主! (2020-12-18 16:49) 

我就是我,颜色不一样的烟火...
离线lwfchat

只看该作者 21楼 发表于: 2021-07-01
    
离线f12x45q56

只看该作者 20楼 发表于: 2020-12-19
这个真的是个好帖,感谢楼主的分享
离线rpdhunter

只看该作者 19楼 发表于: 2020-12-18
非常不错的思路,准备在下个项目中借鉴,多谢楼主!
离线greyfyus

只看该作者 18楼 发表于: 2020-12-18
离线bigma

只看该作者 17楼 发表于: 2020-11-23
思路不错,但是代码就。。。
我最近也在写fancyribbon,借鉴借鉴
离线gnibuoz

只看该作者 16楼 发表于: 2020-11-20
回 wushuang443 的帖子
wushuang443:不错不错是拖控件搞的吗?还是写代码写出来的? (2020-09-27 14:27) 

有UI,也有代码
我就是我,颜色不一样的烟火...
离线wushuang443

只看该作者 15楼 发表于: 2020-09-27
不错不错是拖控件搞的吗?还是写代码写出来的?
离线libaineu2004

只看该作者 14楼 发表于: 2020-09-21
我自己也写了一个,欢迎访问:
https://blog.csdn.net/libaineu2004/article/details/108219125
离线chamsdoncon

只看该作者 13楼 发表于: 2020-07-21
离线gnibuoz

只看该作者 12楼 发表于: 2020-07-20
回 libaineu2004 的帖子
libaineu2004:建议博主,把这个开源项目集成进入:
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
 (2020-07-19 09:33) 

嗯嗯,最近比较忙,后面有时间了可以规划下
我就是我,颜色不一样的烟火...
离线libaineu2004

只看该作者 11楼 发表于: 2020-07-19
建议博主,把这个开源项目集成进入:
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
1条评分金钱+1
王四平code 金钱 +1 - 2020-07-27
离线songhuirong1

只看该作者 10楼 发表于: 2020-07-02
这个效果不错
4条评分好评度+1贡献值+1金钱+1威望+1
gnibuoz 好评度 +1 - 2020-07-04
gnibuoz 贡献值 +1 - 2020-07-04
gnibuoz 威望 +1 - 2020-07-04
gnibuoz 金钱 +1 - 2020-07-04
离线alone_work

只看该作者 9楼 发表于: 2020-07-02
    
4条评分好评度+1贡献值+1金钱-1威望+1
gnibuoz 好评度 +1 - 2020-07-04
gnibuoz 贡献值 +1 - 2020-07-04
gnibuoz 威望 +1 - 2020-07-04
gnibuoz 金钱 -1 - 2020-07-04
离线gnibuoz

只看该作者 8楼 发表于: 2020-06-28
回 群主大人 的帖子
群主大人:相当牛掰 (2020-06-28 11:00) 

不敢当,能给大家带来一点方便就好
我就是我,颜色不一样的烟火...
离线gnibuoz

只看该作者 7楼 发表于: 2020-06-28
回 mengkun 的帖子
mengkun:厉害!![表情]
这个思路真的不走寻常路! (2020-06-28 08:35) 

哈哈,当时也是为偷懒苦思冥想了许久,不得不说偷懒真是人类进步的阶梯啊,这样实现比较好的就是以前很多项目基本不用怎么改代码就可以直接用上Ribbon了
我就是我,颜色不一样的烟火...
离线群主大人

只看该作者 6楼 发表于: 2020-06-28
相当牛掰
4条评分好评度+1贡献值+1金钱+1威望+1
gnibuoz 好评度 +1 - 2020-07-04
gnibuoz 贡献值 +1 - 2020-07-04
gnibuoz 威望 +1 - 2020-07-04
gnibuoz 金钱 +1 - 2020-07-04
在线mengkun

只看该作者 5楼 发表于: 2020-06-28
厉害!!
这个思路真的不走寻常路!
4条评分好评度+1贡献值+1金钱+1威望+1
gnibuoz 好评度 +1 - 2020-07-04
gnibuoz 贡献值 +1 - 2020-07-04
gnibuoz 威望 +1 - 2020-07-04
gnibuoz 金钱 +1 - 2020-07-04
离线gnibuoz

只看该作者 4楼 发表于: 2020-06-27
回 lemonzll 的帖子
lemonzll:[表情] [表情] 试了下挺好的。建议可以加上项目文件,这样方便测试 (2020-06-27 15:26) 

好建议,我回头重新上传下工程文件,后续使用有什么问题可以继续交流
我就是我,颜色不一样的烟火...
离线lemonzll

只看该作者 3楼 发表于: 2020-06-27
试了下挺好的。建议可以加上项目文件,这样方便测试
4条评分好评度+1贡献值+1金钱+1威望+1
gnibuoz 好评度 +1 - 2020-07-04
gnibuoz 贡献值 +1 - 2020-07-04
gnibuoz 威望 +1 - 2020-07-04
gnibuoz 金钱 +1 - 2020-07-04
离线gnibuoz

只看该作者 2楼 发表于: 2020-06-27
回 clickto 的帖子
clickto:先点个赞![表情] [表情] [表情]  (2020-06-27 11:40) 

我就是我,颜色不一样的烟火...
离线clickto

只看该作者 1楼 发表于: 2020-06-27
先点个赞!
4条评分好评度+1贡献值+1金钱+1威望+1
gnibuoz 好评度 +1 - 2020-07-04
gnibuoz 贡献值 +1 - 2020-07-04
gnibuoz 威望 +1 - 2020-07-04
gnibuoz 金钱 +1 - 2020-07-04
快速回复
限100 字节
 
上一个 下一个