c++ 界面库_c++界面库_大余里的博客-程序员秘密

技术标签: 界面  

刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。

 

    一.  开源C++界面库

  

1.RingSdk

    Ringsdk是CSDN上一个前辈自己写的界面库,这个界面库很轻而易举实现QQ2009的界面效果。链接见 

  http://blog.csdn.net/ringphone/article/details/2911244   貌似Ringsdk和MFC无法进行交互,但是 RingSdk其中有很多的图形处理的代码都非常有参考价值。

 

2.redui的官方网站http://www.redui.org 已经打不开了。官方QQ群是 40729296 

CSDN地址是 
http://blog.csdn.net/jameshooo/article/details/6677272

这是官方的说明

REDUI,又名REDirectUI,全称是Rendering Engine for DirectUI,是一款基于XML描述的 DirectUI 渲染引擎,能将“控件”的交互和渲染过程分解成多种独立的要素,包括布局、视觉效果、样式、UI自动化、滤镜、脚本、事件、3D场景、3D模型、通用动画等。通过这些要素的排列组合,可以呈现出各种不同效果的控件,甚至能在XML中直接自定义控件类型。支持2D/3D无缝融合。
• REDUI支持GDI/GDI+/DirectDraw/D3D等渲染方式,并有支持OPENGL/ES的愿望

 

3.Duilib 这个就比较大名鼎鼎了,不用多说了吧。包括华为网盘在内的很多业内企业都在用这个界面库。我用Duilib做了一个小型的界面。贴出来献丑一个。

 

4.WGI-1.0.7-Demo-Project-for-windows 。。额。。时间太长,忘记了这个代码是什么,姑且先忽略它。

 

5.cj60lib 这个玩过Gh0st3.6木马的人都熟悉,是一款对MFC进行拓展的界面库

6.金山界面库 这个就不赘述了,可以直接上金山的论坛找源代码和资料

7.skinTK_V0.20 一款类似于Skin++的开源界面库

8.FreeCL_Skin2.3 一款不错的控件库 扩展了常用的MFC控件 。  这个是FreeCL_Skin提供的一个效果实例。

 

9.GuiLib1.5 一个老外写的界面库 没有用过,没有调查,就没有发言权。大家自行百度。

 

10.基于3D的界面库 MangoGUI_V0.1.5

 

MangoGUI是猫仔在DXUT基础上修改得来的一个开源GUI系统。

目前来说基本上继承了DXUT里面绝大多数的功能和改进了使用方式,让DX学习爱好者更容易去使用GUI系统。

如果你也是一位对GUI有兴趣的同学,非常欢迎你一同来参与到MangoGUI的设计当中来!

作者博客

http://m9551.blog.sohu.com/

 

11.基于Skia的directui库metalbone

代码托管地址

http://code.google.com/p/metalbone/

官方说明

MetalBone是一个C++ DirectUI库。接口、命名等借鉴Qt,而并非使用Windows风格。

MetalBone的特点是,使用CSS来定制样式(如果没有CSS的话,则什么也不显示,lol)。目前可以使用Direct2D或Google Skia来绘制界面。MetalBone使用的是 WWM协议(基于LGPL)

 

12.SonicUI2011

效果比较不错的一款皮肤库

作者CSDN地址是 

http://my.csdn.net/akof1314

 

13 基于OpenGl的界面库 beGUI-0.1.3-src

代码托管地址

 http://code.google.com/p/begui/

 

               二 未开源或商业界面库

 

1.Flash4UI 

 看命名就知道是将Flash嵌入到UI中。

官方网站是  http://www.flash4ui.com/

效果图片

 

2.bolt 迅雷7界面引擎

迅雷界面引擎,这个用过迅雷下载和迅雷看看的就有体会了,界面的确是做的非常的赞。而且流畅,CPU占用和内存各种都很棒。采用了脚本交互的方式,脚本语言采用了Lua.可惜的是迅雷只开放了接口SDK给个人使用。

官方网址 http://bolt.xunlei.com/

 

3.clayui

百度百科说明   clayui是一个采用纯C++编写的界面框架,可以很方便的移植到各种系统上。现在支持的系统包括Android,windows,wince,Linux。clayui的特点是能实现各种2D,3D动画,一些WPF,FLEX才能实现的界面效果,通过clayui可以很方便的实现。 clayui的底层渲染支持纯软件渲染,d3d,opengl es硬件加速渲染,您可以根据自身的需求选择合适的渲染方式,使您界面的用户体验达到最佳效果

效果

4.DSkinLite

官方网址  http://www.uieasy.cn/dskinlite/

官方Demo

 

5.libuiDK

官方说明:LibUIDK是国际上顶尖的专业开发Windows平台下图形用户界面的开发包,也是国内第一款商业的高级界面开发工具。该开发包基于Microsoft的MFC库。使用此开发工具包可轻易把美工制作的精美界面用Visual C++实现,由于LibUIDK采用所见即所得的方式创建产品界面,所以极大的提高了产品的开发速度,并大大增强图形用户界面(GUI)的亲和力。LibUIDK还可以使您的软件轻松具有当今流行的换肤功能,以提高产品的竞争力。

官方网站

http://www.iuishop.com/index.asp

实例

 

6. SiteUi   SkinSE  都有官方网站。就不继续搬砖的工作了。

 

7.(未开源)上海勇进UIPower

这个比较牛逼。一款界面库就是大几百万的。老总阙海忠还亲自录了20集的界面库相关的视频

官方网站 http://www.uipower.com/

这是老阙的视频。

 

8.炫彩界面库

炫彩界面库貌似是私人开发的一个界面库,可以用C++.c#易语言等来开发。炫彩库的作者貌似是湖北襄阳人哟。

官方网站 http://www.xcgui.com/


9.魔方界面库

官方网站 http://www.muilib.com/

MuiLib(Magic UI Library)Windows高级界面开发库是在国内首家免费开源的DuiLib界面开发库基础上经过针对性的扩展而发展起来的,他继承了DuiLib高度自由灵活的特点,并吸收了其他界面库的一些优点,针对Windows层窗口按像素透明技术而重点优化后形成的一个优秀界面开发库,是一个使用纯C++调用Windows API的开发库,无任何其他第三方依赖框架,您可以使用其提供的各种高级控件来创建更加炫酷的用户界面

 

10 XtremeToolkit

由Codejock 公司出品的一款界面库。应用也是比较广泛的。在2013版的大灰狼远程操控中就采用了这款界面库。

 

11.Sharpui

代码托管地址  https://github.com/china520/sharpui

Sharpui是居于现在流行的DUI思想的一套界面库,可以方便实现半透明和各种界面效果,采用纯c++实现,分为引擎和控件两个部分,这两个部分采用动态库的形式提供,引擎部分处理了事件、资源、渲染、控制逻辑,同时提供了各种应用层面控件的实现基类,包括:Visual、Element、FrameworkElement、Control、ContentControl、Window、Panel、Popup,这些类封装了基础控件的实现细则,所有用户实现的控件都必须继承自这些类,对于需要呈现的控件必须继承至FrameworkElement。
控件部分提供的所有控件均采用DUI方式实现、分层绘制,实现各种常用的布局控件,可灵活实现界面的自动布局;Sharpui本身所有数据结构采用原生实现,内存自动管理,不依赖于std的任何容器,使得库的使用更加独立、编译更加简单,使用VS任意一个版本编译都可以用在其它版本里,不需要担心由于std版本原因而产生编译问题。

 

 

以上都是我在工作和个人业余时间收集积累的开源或商业界面库,这些界面库各有各的特色和侧重点,也有不同的换肤思想,如果要用在项目中还是要进行适当的增删整改。

由于个人能力水平见识有限,也有些大神的作品没有被收录其中。表示遗憾。

 

 

 

/**************************************************Witch_Soya***********************************************************/

/**************************************************2013年9月3日15:55:18***********************************************/

 

http://blog.csdn.net/witch_soya/article/details/10982451

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yjj350418592/article/details/105369745

智能推荐

pycharm GIT 账号密码输入错误如何更改_更改pychram git push密码_Serendipity..的博客-程序员秘密

pycharm GIT 账号密码输入错误如何更改第一次在pycharm中,输入git的账户或者密码出现错误,下一次pycharm系统会记住你输入错误的账户和密码 The requested URL returned error: 500只需要在pycharm中点击File里面的SettingsAppearance 列表下面的System Settings中的Passwords...

自学Python第一周——print的用法总结_maggie5s的博客-程序员秘密

自学Python第一周——print的用法总结博客动机:开始自学Python,作为一个除了考过计算机二级就再也没有别的编程经验非计算机专业理工科学生,这几乎是一个新的开始。在芸芸众语法中选择了Python,是作为程序员的男票推荐的结果。他说python语法简单、容易上手,推荐了《Learn Python The Hard Way》,读了几章下来,发现确实是本入手很快的书,像游戏的新手指导一样循序渐进

鸿蒙开发之如何响应Button点击事件(HarmonyOS鸿蒙开发基础知识)_知识大胖的博客-程序员秘密

Button 是什么按钮(Button)是一种常见的组件,点击可以触发对应的操作,通常由文本或图标组成,也可以由图标和文本共同组成。响应点击事件按钮的重要作用是当用户单击按钮时,会执行相应的操作或者界面出现相应的变化。实际上用户点击按钮时,Button对象将收到一个点击事件。 开发者可以自定义响应点击事件的方法。例如,通过创建一个Component.ClickedListener对象,然后通过调用setClickedListener将其分配给按钮。参考代码//从定义的xml中获取Button对象

Pytorch:多GPU训练网络与单GPU训练网络保存模型的区别_chen645096127的博客-程序员秘密

分类专栏:PyTorch测试环境:Python3.6 + Pytorch1.1在pytorch中,使用多GPU训练网络需要用到 【nn.DataParallel】: gpu_ids = [0, 1, 2, 3] device = t.device("cuda:0" if t.cuda.is_available() else "cpu") # 只能单GPU运行...

文献管理:文献管理软件Mendeley的基本使用和导出参考文献方法_weixin_39450145的博客-程序员秘密

https://blog.csdn.net/dreamhigher/article/details/104879741文献管理软件Mendeley的基本使用和导出参考文献方法

随便推点

实验报告-R语言基本绘图_r语言绘图实验报告_梁云亮的博客-程序员秘密

课程:数据分析技术实验室名称:指导老师:实训日期: 年 月 日实训题目:R语言基本绘图实训目的:掌握基本绘图系统、Lattice绘图系统、ggplot2绘图系统。学会绘制散点图,条形图,箱线图。了解其他功能多样的可视化图形如:脸谱图、韦恩图。实训内容:使用基本绘图系统graphics包绘制图形使用Lattice绘图系统中lattice包和grid包绘制图形使用ggplot2绘图系统绘制图形实验过程与结果实验一:代码:x <- c(2,5,1,3,4,1,5,3,

Canal部署过程中的错误_error c.a.otter.canal.adapter.launcher.loader.adap_Asker.J的博客-程序员秘密

文章目录错误一:NullPointerException错误二:MySQLNonTransientConnectionException错误三:ESConnection错误四:UnknownHostException错误五:CommunicationsException错误六:CanalClientException错误七:ClassCastException错误八:IllegalStateException错误九:65536canal程序包API错误一:NullPointerException日志:

Mac OS中MySQL Workbench或者ssh闲置一段时间就卡死的解决方案_jinhuazhe2013的博客-程序员秘密

找了很久,发现两者有共同点。ssh解决方案使用网友提到的方案https://www.jianshu.com/p/b0bba7c7ac68。ssh通过修改mac上的ssh配置解决此问题:vi ~/.ssh/config// 加入这句:ServerAliveInterval 30Mysql Workbench解决方案网友在https://www.jianshu.com/p/b09e2b793844 稳重提出设置“DBMS connection read time out (in second

React中ref的理解_react ref_逆袭的菜鸟X的博客-程序员秘密

####(1)React的ref有3种用法:字符串dom节点上使用,通过this.refs[refName]来引用真实的dom节点<input ref="inputRef" /> //this.refs['inputRef']来访问回调函数React 支持给任意组件添加特殊属性。ref 属性接受一个回调函数,它在组件被加载或卸载时会立即执行。当给 HTML 元素......

宝塔配置Django项目_宝塔配置djangocms_BruthYU的博客-程序员秘密

一、开始准备购买服务器,腾讯云阿里云均可为服务器安装宝塔面板,官方教程:宝塔Linux面板安装教程 - 2020年1月8日更新 - 7.1.0正式版为面板设置用户名密码,进入面板。二、上传项目点击面板左侧的 “文件” ,进入 根目录/www/wwwroot 路径下,将自己的Django项目压缩包上传,之后解压即可。如下图所示:三、配置Python项目管理器(1) 进入宝塔面包软...

iwconfig_machiner1的博客-程序员秘密

iwconfig编辑本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!iwconfig是Linux Wireless Extensions(LWE)的用户层配置工具之一。LWE是Linux下对无线网络配置的工具,包括内核的支持、用户层配置工具和驱动接口的支持三部分。目前很多无线网卡都支持LWE,而且主流的Linux发布版

推荐文章

热门文章

相关标签