开发类似Qt/GTK的框架

Nat*_*pos 1 gtk user-interface qt frameworks

我现在有一个想法开始开发一个简单的Qt/GTK +式框架,但我想在开始创建这个项目之前知道一些事情:

  • GTK +和Qt的结构是什么?
  • 我是否需要开发一个窗口管理器来构建自己的框架?
  • 一些资源开始?

Bar*_*ark 5

开发GUI /应用程序框架是一项重大任务.您可能希望非常清楚为什么需要编写其他框架.

你提到的两个项目都是开源的.为什么不从那里开始?

  1. GTK:git clone git://git.gnome.org/gtk+
  2. Qt:git clone git://gitorious.org/qt/qt.git

Ed您问GTK和Qt的结构是什么,是否需要编写自己的寡妇经理(答案:否)以及如何开始.至少前两个的答案在源代码中.不要忘记,任何领域的优秀从业者都要通过观察他人来学习.阅读代码也不例外.

  • 首先,我想开发另一个框架来学习更多和练习,其次,我没有从Git获得GTK和Qt的来源,因为我想从骨头做到这一点.谢谢. (2认同)

Bob*_*phy 5

编写GUI/app框架将是一次很好的学习体验,但是即使是一个相当小的应用程序框架也是一项非常大的工作,并且在你使用其他几个框架和widget工具包编写应用程序方面相当专业之前,你不应该解决这个问题. .

在这十年的早期,我做过一次这样的事情.那是在我为Mac编程超过15年,Windows超过10年之后,直接编程到他们的原生图形,事件和小部件API,以及各种面向对象的工具包,包括PowerPlant,MFC和MacApp.当我开始使用PalmOS应用程序时,我花了几周的时间编写了一个以PowerPlant为模型的非常小的应用程序框架.但是,如果没有这么多GUI系统的广泛和深入的经验,我就不可能取得成功.

为Linux/X11执行此操作更加有效.这是因为,与Mac OS和Windows不同,X11和Linux都不提供内置的用户界面小部件,或者提供图形基元或文本布局功能.GTK +是GNOME生态系统的一部分; 它提供了小部件,从GObject获取其消息队列和内部通信,依靠GDK抽象和简化其与X11的图形和事件通信,并使用Pango和Cairo进行文本渲染和布局.我通过该系统工作,它可能代表了许多非常聪明的人的许多人年的辛勤工作.而且我确信Qt非常相似.

所以如果你真的想这样做,我建议你:

  1. 在多个操作系统上编写包含许多不同app和widget工具包的程序.这将帮助你学习不只是如何这样的系统工作,但为什么它们被设计,因为它们.它会给你一些感觉,哪些效果很好,哪些效果很差.
  2. 为一个或多个开源框架提供漏洞修复或新功能.GTK +有一个初学者要处理的任务列表.另一个很棒的开源框架是wxWidgets.
  3. 成为专家级C/C++程序员.

如果你已经完成了几年,那么你将拥有适合处理自己框架的专业知识.