Qt是否支持功能区控件(Ribbon Control)?

30

Qt支持缩略图控件吗?


2
@smerlin:抱歉我太蠢了,但是怎么做呢? - hamza
通过创建自己的小部件类来提供所需的功能。这样的小部件将包含其他预定义的qt小部件,如QPushButtons。要覆盖这些小部件的默认外观,您有3个选择:a)样式表b)自定义QStyle类,c)自定义paintEvents。选项a)是最简单的,但性能最差。选项b)非常困难,选项c)要求您对QPushButton等基本小部件进行子类化。除非您有创建自定义QStyles的经验,否则选择a)可能是最佳解决方案。 - smerlin
当然,但是任何不想“重复造轮子”的人都可以查看我的答案(请参见以下链接:https://dev59.com/qHE85IYBdhLWcg3wqVT4#66774301)!(我刚刚查了一下时间,在那个时候还没有免费的开源实现)。 - S. Goody
8个回答

12

7
唉,然而这个代价太高了。 - metal
1
提醒一下:我们正在使用这家公司的一个(不同的)组件,他们的支持和文档非常糟糕。你可能需要寻找另一种解决方案。 - i know nothing
d= (-_- ) 谢谢,但是也有免费的替代品,比如Qt-Ribbon-Widget!(哦,刚看到日期,那时候还没有好的免费替代品)。 - S. Goody
$500 买一条丝带?他们疯了吗? - Gary Allen

3

虽然Qt没有专门的 Ribbon 小部件,但您可以自己制作类似的东西。您可以使用QTabWidget并在其中放置一些按钮(并且可以选择将其样式设置得更像 Microsoft 的 Ribbon)。根据您想要实现的内容,这可能已经足够了。


3
您可以将任何JavaScript / JQuery Ribbon插入到QWebView中,并使用Qt Webkit Bridge对其进行任何操作。

3

这不是Microsoft Office中使用的Ribbon控件。它是由Prashanth N Udupa编写的,他将其命名为Menu strip。请参考他在2007年Qt竞赛中的获奖作品:Generic Component Framework - menjaraz

1

目前没有Qt的功能区控件。 我相信有许可问题阻止了诺基亚开发类似于微软的功能区控件。


不要太高兴——MS现在拥有Qt了! - metal
从Windows上的大量实现可以看出,这从未是一个问题。 只是Qt不再支持GUI。 - Lothar

1

现在有免费的替代品可以取代QtitanRibbon,例如,请查看:
https://github.com/martijnkoopman/Qt-Ribbon-Widget

enter image description here

你甚至可以直接在任何*.ui文件中使用它!只需在QtDesigner中添加一个QTabWidget,然后将该小部件提升Ribbon类。

尽管这看起来有些不同,在我看来,最好使用这个,以免因外观与微软完全相同而被起诉。 - S. Goody

0
不,目前我没有发现任何支持它的计划。

虽然我同意,但这应该是一条评论,而不是一个答案。 - Adrian Maire

0
我们使用QtitanRibbon,在我们的项目中它表现非常出色。技术支持很好,只是文档稍微有些不足。需要注意的是,它不仅提供了一个功能齐全的ribbon用户界面,而且还方便实现深色模式(或在我们的情况下,我们选择了灰色模式)。

但它是商业解决方案,对于个人开发者来说过于昂贵。 - Linfeng Mu
完整的功能区行为相当复杂,因此如果您不需要它,我建议您遵循上面的建议构建一个填充了适当的QToolButton操作的QTabBar。 - Dag B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接