Qt实现Word文档界面样式--QtitanRibbon

QtitanRibbon - Microsoft Ribbon for Nokia's Qt概念的实现


QtitanRibbon组件实现了Microsoft Ribbon for Qt的概念,设计用于任何使用Qt开发的商业应用。这个组件和Qt一道为获取一些应用提供了一个难得的机会,这些应用在全球三大主要平台Windows、Linux和Mac OS X上都有现代化的外观和感觉。

QtitanRibbon为最终应用提供了5种主题:蓝色、黑色、浅绿色、银色和风景画。下面是真实效果的一些截图。

Windows平台:

QtitanRibbon QT Ribbon

Linux平台:

QtitanRibbon QT Ribbon

Mac平台:

QtitanRibbon QT Ribbon

正如你所看到的,外观在三个平台上简直完全一样,这是我们精心设计的结果。仅仅有一个默认的区别:每个平台主题UI的初始化不同。Windows代表了经典,所以是蓝色主题。Linux平台总让人联想起黑客和爆脾气的人,因而它的初始化主题是黑色的。Mac OS X象征着智慧与奢华,所以默认主题是风景优美的图画。任何时候,Ribbsson UI的初始化主题都可以被修改,与平台无关。

QtitanRibbon作为Ribbon UI for Nokia's Qt的实现标准


QtitanRibbon的实现严格遵守Microsoft的标准和规范,并应用到Ribbon UI概念。Ribbon UI概念从用户中发展建立起来。因而如果您使用的是QtitanRibbon,那么您的用户能轻松地学习和快速启动您的应用。控件的组成相当于一个集合,Ribbon UI 说明书对其进行了描述。QtitanRibbon组件提供以下元素:

QtitanRibbon QT Ribbon

QtitanRibbon QT Ribbon

QtitanRibbon QT Ribbon

下表是一些已实现和计划中的元素:

Ribbon UI Elements Stage
Ribbon Bar Implemented
Ribbon Tabs Implemented
Ribbon Groups Implemented
Application Button Implemented
Backstage View Implemented
Contextual Tabs Implemented
Quick Access Bar Implemented
Button Control Implemented
Button Group Control Implemented
Calendar Control Planned
Check Box Control Implemented
Combo Box Control Implemented
Data/Time Picker Control Planned
Drop-Down Button Control Implemented
Gallery Control Implemented
Key Tip Control Implemented
Label Control Implemented
Masked Text Control Planned
Numeric Up-Down Control Implemented
Panel Control Implemented
Radio Button Control Implemented
Screen Tip Control Implemented
Scroll Bars Control Implemented
Separator Control Implemented
Slider Control Implemented
Split Button Control Implemented
Status Bar Control Implemented
Tab Control Control Implemented
Text Box Control Implemented
Toggle Button Control Implemented

本产品中,我们与Ribbon UI一起还提供了一种Style OfficeStyl(它继承自QStyle),您可以使用它创建与Microsoft Office 2007或者2010非常相似的应用。Style OfficeStyle能很好的提供5种主题:蓝色、黑色、银色、浅绿色和风景画。

QtitanRibbon -实现细节


这个组件100%使用原生Qt/C++设计,没有借助其他工具和第三方库。然而,每个平台上的部分代码是以不同的方式实现的,缘由于Qt的部分特性,也是为了提高渲染性能。

QtitanRibbon支持Qt4.5.x、Qt4.6.x、Qt4.7.x、Qt4.8.x以及Qt5.x.x的所有版本。

集成Qt Designer


QtitanRibbon组件便捷集成了Qt Designer。这允许您在运行时管理表格中Ribbon UI的位置。

QtitanRibbon功能特点


概述

QtitanRibbon是一组窗体部件集(控件元素),能帮助您轻松、快速地为应用添加下一代用户界面(见图1)。产品完全基于Qt SDK。

QtitanRibbon QT Ribbon

我们使用几种全新的方法为您提供市场上最佳、最全面的UI解决方案。以下是它的一些最重要的功能:

  • 与Microsoft Ribbon功能完全相同。

  • 能轻松集成到已有的或新的应用中。

  • 样式选择多变,包括Office 2007、Office 2010(蓝色、银色、黑色、浅绿色、风景画), Office 2013正在开发中。

  • 优化的绘画引擎。

  • 纯Qt代码,无条件支持Windows和Linux系统。

QtitanRibbon使用Qt SDK通过C++编写,并支持以下环境:

  • Visual Studio 2003

  • Visual Studio 2005

  • Visual Studio 2008

  • Visual Studio 2010

  • Visual Studio 2012

  • Qt Creator

  • Qt产品集成的任何其他IDE

  • Qt 4.5 - 4.8, Qt 5 (32位/64位)

  • Windows、Linux、Mac OSX

QtitanRibbon元素

Ribbon

Ribbon是用户界面的主要元素,包含了多个标签。 每个标签的内容都进行了分组(见图2、图3)。

QtitanRibbon QT Ribbon

图2. 主标签选项卡

QtitanRibbon QT Ribbon

图3. 主标签选项卡和激活的内容菜单

组允许您自动定位窗体部件,它还有另一个非常有用的功能,可以最小化无论宽度是否改变的ribbon,并且提供对其特性的所有访问权限(见图4)。

QtitanRibbon QT Ribbon

图4. 基于ribbon宽度的组定位

当一个组最小化之后,用户可以左击组打开一个弹出式窗口,通过它来访问组的控件元素。

QtitanRibbon QT Ribbon

图5. 访问最小化组的控制元素

 

系统按钮

左上角的按钮可以打开应用菜单(见图6):

QtitanRibbon QT Ribbon

MDI

QtitanRibbon支持MDI(多文档界面) (见图7、图8)。

QtitanRibbon QT Ribbon

图7. 应用的子窗口排列

QtitanRibbon QT Ribbon

图8. 应用子窗口的最大化

您也可以使用MDITabs管理子窗口。

QtitanRibbon QT Ribbon

图9. MDITabs的使用  

QtitanRibbon风格

支持以下风格:

  • Office 2007蓝色 (见图10)

  • Office 2007银色 (见图11)

  • Office 2007黑色 (见图12)

  • Office 2007浅绿色 (见图13)

您可以在Qt用户界面的经典视图中使用上面列出的风格(见图14),这样所有Qtitan的风格都继承自QStyle。

QtitanRibbon QT Ribbon

图10.Office 2007蓝色

QtitanRibbon QT Ribbon

图11.Office 2007银色

QtitanRibbon QT Ribbon

图12.Office 2007黑色

QtitanRibbon QT Ribbon

图13.Office 2007浅绿色

您可以在Qt用户界面的经典视图中使用上面列出的风格(见图14),这样所有Qtitan的风格都继承自QStyle。

QtitanRibbon QT Ribbon

控件元素(窗体部件)

Qtitan Ribbon每一个控件元素的开发都是为了兼容了以下需求:

  • 控件元素能用于不同的环境中,例如ribbon、表格和弹出式菜单。

  • 控件元素应尽可能是一个窗口,它保存系统资源,避免一系列问题。

  • 控件元素应该有几个可视化的演示。例如,对于ribbon,控制元素的图标可大可小,文本可有可无。当ribbon的宽度发生了变化,元素能有相应的变化。

按钮

按钮提供了以下使用选项:

  • 支持弹出式菜单(工具按钮弹出模式)

  • 支持KeyTip

  • 支持ScreenTip

  • 支持可变和复选状态

  • 支持显示ToolButtonStyle

  • 支持文本和图像调整

您可以依据大小和当前状态来预览ribbon上的按钮。见图15:

QtitanRibbon QT Ribbon

弹出式按钮

带弹出菜单的按钮允许用户从列表中选择操作命令,它也提供一下功能(见图16):

  • 支持KeyTip

  • 支持ScreenTip

  • 支持可变和复选状态

  • 支持显示ToolButtonStyle

  • 支持文本和图像调整

QtitanRibbon QT Ribbon

图16.带有下拉菜单的几种按钮

按钮具有混合功能(见图17、图18),有两种工作模式-常规按钮和带弹出式菜单按钮。允许用户从菜单列表选择命令的按钮拥有以下属性:

  • 支持KeyTip

  • 支持ScreenTip

  • 支持可变和复选状态

  • 支持显示ToolButtonStyle

  • 支持文本和图像调整

QtitanRibbon QT Ribbon

图17.Split Button状态选项

QtitanRibbon QT Ribbon

图18.Split Button状态选项

按钮组

您可以将小型按钮加入分组(见图19)。

QtitanRibbon QT Ribbon

复选框和单选按钮

复选框和单选按钮提供了常规QCheckBox和QRadioButton的功能(见图20):

  • 能于用在ribbon和表格

  • 支持KeyTip

  • 支持ScreenTip

  • 支持可变和复选状态 

QtitanRibbon QT Ribbon

组合框

ComboBox拥有常规QComboBox的所有功能(见图21):

  • 能用于ribbon和表格

  • 支持KeyTip

  • 支持ScreenTip

  • 支持可变状态

  • 支持Text Box 

QtitanRibbon QT Ribbon

滑动条

滑动条控件元素允许用户在设定的范围内改变值:

  • 能用于ribbon和表格

  • 支持可变状态(见图22、图23) 

QtitanRibbon QT Ribbon

图22.在ribbon group中使用Slider组件

QtitanRibbon QT Ribbon

图23.在status bar中使用Slider组件

SpinBox (数值升降)

SpinBox允许用户改变其数值,并且有两个按钮:增加按钮和减少按钮。这个组件提供以下功能: 

  • 能用于ribbon和表格

  • 支持KeyTip

  • 支持ScreenTip

  • 支持可变状态

  • 支持Text Box

QtitanRibbon QT Ribbon

图24.Qtitan Ribbon中的SpinBox

滚动条

根据当前选定的主题,可以对ribbon和表格进行水平和垂直滚动操作。

QtitanRibbon QT Ribbon

图25.水平滚动和垂直滚动

标签

虽然所有的控件元素都支持自己的文本,但是在某些情况下使用标签还是更方便,它的功能如下:

  • 能用于ribbon和表格

  • 支持显示文本和图像(见图26)

QtitanRibbon QT Ribbon

图26.使用Label显示文本和图像

选项卡控件

常规控件元素QTabBar是通过选定的主题定义的。

QtitanRibbon QT Ribbon

图27.TabControl in QtitanRibbon

状态栏

标准状态栏(QStatusBar)的外观也取决于当前选定的主题。
您也可以使用状态栏中的以下控件元素:

  • 下压按钮

  • 切换按钮

  • 进度条

  • 滑动条

  • 标签

QtitanRibbon QT Ribbon

图28.StatusBar in QtitanRibbon

类型 标题 发布时间
版本更新 QtitanRibbon v4.13.0

跨平台Ribbon UI组件QtitanRibbon发布v4.13.0,新版本为Office 2013-1016主题中的OfficePopupWindow添加了样式。

2017-11-17
版本更新 QtitanRibbon v4.12.0

跨平台Ribbon UI组件QtitanRibbon发布v4.12.0,新版本添加了对Qt 5.9的支持。

2017-08-15
文章 【更新】Ribbon UI组件QtitanRibbon发布v4.13.0|附下载

跨平台Ribbon UI组件QtitanRibbon发布v4.13.0,新版本为Office 2013-1016主题中的OfficePopupWindow添加了样式。

2017-11-17
文章 【更新】Ribbon UI组件QtitanRibbon发布v4.12.0|附下载

跨平台Ribbon UI组件QtitanRibbon发布v4.12.0,新版本添加了对Qt 5.9的支持。

2017-08-15

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

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

相关文章

选夫婿2

Problem Description 倾国倾城的大家闺秀潘小姐要选夫婿啦!武林中各门各派,武林外各大户人家,闻讯纷纷前来,强势围观。前来参与竞选的男生藏龙卧虎,高手云集,才子遍布,帅哥纷纭,更不…

轻松反编译C#的DLL

深入了解Unity,需要知道它内部是怎样工作的,API的代码长什么样,本文以UnityEditor.dll为例,演示如何轻松搞定C#库的反编译。 使用的软件是jetbrains系的doPeek,.NET Reflector 9.0也能做同样的工作,但不太推…

Qt5中文乱码解决方案

升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题 第一种: 在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中&a…

带你玩转Visual Studio——带你理解多字节编码与Unicode码

转自:http://blog.csdn.net/luoweifu/article/details/49382969 上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C运行时库及它的来龙去脉,这是C开发中特别容易误入歧途的一个地方,我…

如何快速高效读懂1本书

——半研墨拆书2《如何阅读1本书》 作为运营来讲,除了在实操中学习,还要扩充视角,开阔思维,建立更多解决问题的思考框架,这就要求我们,要多读书,还要会读书。就是说,我们在快速阅读的…

c#学习书籍

楼主这些年一直追随微软技术,也看了不少书籍,整理出一些个人认为不错的经典,推荐给各位阅读,以共同进步。 推荐顺序是由浅入深,深入浅出。 《Professional C#》,中文名《C#高级编程》,最新版本&…

查并集

The White Belt Good developers who are familiar with the entire stack know how to make life easier for those around them. 博客园首页新随笔联系订阅管理 随笔 - 159 文章 - 0 评论 - 0用于不相交集合的数据结构——查并集 不相交集合数据结构的概念和操作&#xff1…

给程序员的10条建议

1. 想清楚,再动手写代码 刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌! 2. 不交流,就会头破血流 不爱说话和沟通,需求都理解错误了,最后做出来才发现…

传说中的800句记7000词

登录 | 注册 ZHB_McCoy的专栏 目录视图摘要视图订阅 一键管理你的代码 攒课--我的学习我做主 【hot】直播技术精选 id"cpro_u2392861_iframe" src"http://pos.baidu.com/sczm?sz300x250&rdid2392861&dc2&diu2392861&dri0&dis0&…

怎样才算得上合格的程序员

转自:http://blog.csdn.net/B9Q8e64lO6mm/article/details/78829370 最近同一部门另一个项目组的一位程序员被“主动离职”了,虽然我未曾与这个程序员共事过,但是听过一两次他的内部分享,感觉技术还是挺厉害的。后来与一个消息灵通…

c# MEF框架(一 MEF简介及简单的Demo)

转自:http://www.cnblogs.com/yunfeifei/p/3922668.html 在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架)。单从名字我们不难发现:MEF是专门致力于解决…

c# MEF框架(二 MEF的导出(Export)和导入(Import))

转自:http://www.cnblogs.com/yunfeifei/p/3922891.html 上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yun…

c# MEF框架(三 导出类的方法和属性)

转自:http://www.cnblogs.com/yunfeifei/p/3927663.html 前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来…

c# MEF框架(四 见证奇迹的时刻之实战应用)

转自 http://www.cnblogs.com/yunfeifei/p/3940075.html 前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻。如果没有看过前面的文章,请到我的博客首页查看。 前面我们都是在一个项目中写了一个类来测试的,但实…

c# MEF框架(四 MEF高级进阶)

转自:http://www.cnblogs.com/yunfeifei/p/3991330.html 好久没有写博客了,今天抽空继续写MEF系列的文章。有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后。 前面四篇讲了MEF的…

Unity3D求向量间的夹角

如下图 Vector3 srcPos new Vector3(0,0,0);Vector3 tarPos new Vector3(0,0,-1);Vector3 srcRot new Vector3(0,90,0);Quaternion srcQua Quaternion.Euler(srcRot);Vector3 direction tarPos - srcPos;Vector3 r Quaternion.Inverse(srcQua) * direction;Debug.Log(r);…

面向切面编程--AOP

转自:https://www.cnblogs.com/qicosmos/archive/2013/04/07/3003480.html (原创) C 轻量级AOP框架 c11 boost技术交流群:296561497,欢迎大家来交流技术。 c中开源的AOP框架AspectC需要单独编译才能将切面的代码织入到核心逻辑代码…

面向切面编程--AOP(二)

转自:http://www.cnblogs.com/qicosmos/p/3154174.html (原创)c11改进我们的模式之改进代理模式,实现通用的AOP框架 c11 boost技术交流群:296561497,欢迎大家来交流技术。 本次要讲的时候如何改进代理模式,具体来说是动…

VS2013+VSVIM

上世纪90年代后期出现了一股.com热潮,相信大家对其都有美好的回忆,那时使用CGI和Perl创建“动态的”网站,通过使用在Unix上的vi编辑器快速打字和格式化,这也包括后来使用的vi的复制版本vim。我可能是怀旧的,但我想念将…

一个程序员的日常书单

本想谈谈读书这个话题,想来想起觉得无从下手,就此作罢.毕业这几年,一直不敢放松,在现代这个互联网时代更加认同萧抡谓的”一日不读书,胸臆无佳想;一月不读书,耳目失清爽”.如果非要给自己找个读书的理由的话,这句诗就是最好的理由:”胸藏文墨虚若骨,腹有诗书气自华”. 与书结缘…