首页 > 其他分享 >GUI随笔

GUI随笔

时间:2022-12-21 15:12:19浏览次数:28  
标签:API 控件 MFC 界面 GUI 开发 随笔

####GUI是一个很大的话题,从Win32(windows基础API编程)到MFC,QT再到DuiLib,WPF,Winform再到Html这是一个很漫长的路,下面是我对这个界面库的见解 就对我而言,或者说目测软件开发,工具开发以及游戏开发等,GUI分为系统提供的API,以及窗口内自绘制两种。但涉及到具体类型,包括工具类软件,报表类,图表类 网页类甚至音视频渲染,以及游戏开发等众多领域, 本人均有涉及,至少略懂一二。 此界面库使用了OpenGL,最主要的目的是一是想跨平台,二是很好的嵌入到图形引擎中做交互,在此基础上实现杂七杂八的技能。

win32 : 使用windows最基础的接口实现界面库编程,每一个Control比如Label,text,Button都有一个类ID,linux中有类似的GTK+,不过接口要比这个好用。
MFC : 微软的C++界面库,从CDialog到SDI再到MDI,一路做完,发现MFC的强大之处到现在没有什么界面库能随随便便替代,但是他的开发也是及其复杂,特别是对界面比较友好的那种,MFC需要各种自定义控件,而且有刷新的问题
DirectUI : duilib,也有其他的商业版本,Soui等,使用微软的GDI绘制,从XML解析,在c++中提供了比较灵活的界面开发方式。其中自身的消息循环是一大亮点(相比于win32)还有消息映射(Duilib也有采用)
QT : 在windows端底层都一样的,对其自身分为QT4,QT5, 高端点的也需要QSS甚至QML开发,使用信号槽的凡是完成各种功能,而且对MFC的各种功能都有封装,是一个不错的库,根据使用经验,QT4一般被人当做界面库的使用,qt5则是一个非常强大的闭合的qt帝国,非常完善的API。 Winform : MFC的c#版本,很多情况会有效率问题,相对于win32更强大,c#也是微软的主推语言,很多逻辑和底层MFC类似。
WPF : 使用MVVM开发的,做出的界面很炫酷,后面微软也提供了UWP等开发,属于windows端比较好用的一个界面库。XAML中加载界面思想和Duilib有着异曲同工之妙,自身使用style来控制样式有brush,storyboard做动画,以及Bind可以绑定元素,还有和ControlTemplate实现控件模板实现各种功能的自定义控件。 HTML : HTML网页开发,从最基本的js开始到Canvas绘制,再到JQuery,以及VUE,element,mint等的开发,前者比较基础类似操作xml,后者类似于WPF做各种控件,体现了业务的变迁
网页开发客户端提供浏览器适配所做的界面比如Electron(逻辑线程与渲染线程的分离,和CEF本身一样),Duilib的CefWebControl控件等。页面灵活如果需要新窗口就很难受

多媒体类: SDL :支持游戏开发和音频播放以及视频渲染(支持多种像素格式),简单的2d小游戏以及音视频播放,ffmpeg的音视频教程用的这个,用起来简单方便。
DX9 :可以用来渲染视频。完善的工具集合DirectUI.

游戏类: 引擎中常用的mygui,cegui等 这个没怎么了解
GWen (Renderer专门的接口用来适配不同API,其他控件的Renderer也采用这个),sfml,imgui等这一类使用多种图形API OpenGL,DirectX控制绘制,自身组装控件逻辑,而这个界面库采用该种设计方式。
UE 的GUI,slot框架做的还不错,以及事件分发机制等。自己的蓝图和界面设计器也是一大特色,比如绑定,描点,各种布局容器以及灵活的功能
Unity 的UGUI:还没了解
当然除了以上这些还有一些基于业务级别的框架比如:Flutter,一些工作流,但是c++封装完整的工作流,类似的有boost,搜狗的workflow以及Poco(我的一个http库很好的借鉴了Poco,他对http中url的解析封装做的不错)。

虽然有以上这么多界面库,设计成自己喜欢的界面库并不容易,需要对每一种界面库都要熟练,达到采百家之长的境界。

有兴趣的先对其他的界面库多熟悉熟悉,遇到优秀的比较有特色的设计或者用法和大家分享。

标签:API,控件,MFC,界面,GUI,开发,随笔
From: https://www.cnblogs.com/yang131/p/16996311.html

相关文章

  • MarkDown使用相关随笔
    1.标题Maekdown里面的标题有多级标题,构造标题的方法为#*n+空格+标题名,其中n的数值即#号的数量代表几级标题例如:如果是##+空格+苹果,那么就会生成名字为苹果的二级标题......
  • 研究计划书:思路随笔
    RPidea当时出愿的时候研究计划书的随笔,当时没有接触过AL+labelannotation,只知道AL,然后下意识把俩个领域联系起来了,没想到这两个领域联系已经有好几年成熟的研究体系了X......
  • 随笔
    今天是2017年12月2日,星期六,我用来一下午的时间把自己的导航改名为山理人导航,把所有的影视资源都整合了一下,也算是娱乐了一下,接下来的时间可能不太经常写博客了,要专心......
  • [翻译]写给初学者的源代码安装指南Beginner's Guide to Installing from Source
    写给初学者的源代码安装指南引入本文档面向希望直接从原始作者处安装软件的开源操作系统用户,而不是仅依赖其操作系统提供的软件(和版本)。它是为那些不熟悉以源代码形式下......
  • es6模块化随笔记
    默认导出与默认导入默认导出的语法:exportdefault默认导出的成员每个模块中只允许使用唯一的一次exportdefault默认导入的语法:import接收名称from‘模块标识符’......
  • Python GUI 开发工具
     PythonTkinter教程(GUI图形界面开发教程):​​http://c.biancheng.net/python/tkinter/​​PyQt5教程:​​http://code.py40.com/face​​ 作为 Pyhon 开发者,我们迟早都会......
  • CF835E The penguin's game
    CF835EThepenguin'sgame-洛谷|计算机科学教育新生态(luogu.com.cn)设两个\(y\)的下标分别是\(a\)和\(b\)。为方便说明,下文所有的第\(i\)位指的都是该数二......
  • [常用工具] PyAutoGUI使用教程
    date:2021-12-2119:40:22+0800tags:-常用工具-PythonPyAutoGUI使用教程目录PyAutoGUI使用教程1基础知识2一般函数3故障保险4鼠标函数4.1鼠标移动4.2......
  • 推荐一款适合做GUI的国产MCU
    最近事情有些多,公众号没有坚持更新,大家见谅。前两天收到了华芯微特提供的一块开发板,今天抽时间测试了一下,感觉效果还不错,分享给大家。之前做了一个7寸触摸屏控制器的项目,用......
  • GIT安装GUI
    官方git下载地址:https://git-scm.com/downloads1、查看git版本git--version2、配置全部信息gitconfig--globaluser.nametuboshugitconfig--globaluser.email......