文章可转载,转载请注明出处:http://www.cnblogs.com/collectionne/p/6928612.html。文章未完,如果不在博客园(cnblogs)发现本文,请访问前面的链接查看最新版。

GUI是什么

GUI是图形用户界面(graphical user interface)的意思,意思是采用图形方式显示的计算机操作用户界面。

这里的写GUI,指的是在屏幕上绘制控件(widget),并对这些控件进行管理。控件,大致就是像按钮、文本框这些组成一个GUI程序的基本部件。(注:这一段如果有问题请提出意见!)

关于本教程

虽然这个教程系列是自己编写GUI,但是其实已经有很多现成的GUI库可用了,例如Qt、wxWidgets(看这里)。C++的标准库是没有提供GUI库的,因此这些GUI库都不是C++标准库,而是第三方的。

竟然都已经有了这么多GUI库,为什么还要自己写呢?这源于我的个人经历——之前我在用OpenGL编写游戏,随着游戏加入的内容越来越多,加入GUI也被提上日程。当时我对GUI库不了解(甚至可能不知道,现在也是),况且似乎这种情况下也不能使用(能使用也不如自己写),于是自己写GUI。于是自己就去学习如何写GUI。我最终实现了按钮(也许还有标签),但游戏也废弃了。

有一个词叫做“造轮子”,虽然已经有很好的成品了,但是自己尝试写写也是不错的,可能有些时候还必须这样做。百度上关于自己写GUI的文章也很少,于是我就打算自己写一个GUI教程系列(使用C++、OpenGL),弥补百度资源的困乏。当然我自己也乐意分享自己的经验。

最后,为方便,这个教程使用Legacy OpenGL。并不是说我跟不上时代,out了,只是为了简单方便——我们的重点是实现GUI,因此不必在写shader、设置VBO、VAO这些事上浪费时间。况且如果OpenGL水平足够,完全可以自己将Legacy OpenGL代码改写成Modern OpenGL代码。

最新文章

  1. 设计模式(一)单例模式(Singleton Pattern)
  2. jquery-qrcode生成二维码
  3. jsp有关resquest与session和application的区别和相似性
  4. jfinal的ajax例子
  5. Linux+Apache+Php+Oracle 基础环境搭建
  6. 解决PHP中file_get_contents抓取网页中文乱码问题
  7. LA_3026_Period_(kmp)
  8. C# BackgroundWorker详解,图例,原理分析
  9. Python学习【第26篇】:Python系列- 多线程(threading)
  10. Ansible-基础
  11. sql 与 mysql 链接数据库
  12. [2018福大至诚软工助教]alpha阶段小结
  13. PHPEXCEL xls模板导入,及格式自定义:合并单元格、加粗、居中等操作
  14. python 正则表达式笔记
  15. Oracle数据库11gR2的卸载 - deinstall
  16. ABBYY FineReader 12中的用户模式你会用吗
  17. Comet——随着AJAX技术兴起而产生的新技术
  18. windows 下安装 rabbitmq报init terminating in do_boot错误
  19. Java银行家算法
  20. java10---点餐系统

热门文章

  1. 非负矩阵分解(4):NMF算法和聚类算法的联系与区别
  2. mysql加密解密方式用法
  3. Linux-进程描述(2)之进程标识符与进程位置
  4. QT5 && VS2013配置
  5. 有关DeadLock的文章列表
  6. 玩转Eclipse--如何使用eclipse可以更好的提高我们的工作效率
  7. python基本数据类型——set
  8. vue+websocket+express+mongodb实战项目(实时聊天)
  9. waiting for spring......
  10. SQL Server pivot 行转列遇到的问题