GUI库:从头开始编写一个GUI库需要多长时间?

GUI Library: How long should it take to write one from scratch?

本文关键字:GUI 一个 长时间 从头开始      更新时间:2023-10-16

对于一个单个 c++程序员来说,从头开始编写一个GUI框架需要多长时间?

粗规格:

  1. 您可以访问boost,图像加载函数,字体渲染例程,信号槽,unicode字符串类,变体类。(基本上是Qt 4减去实际的gui(源自QWidget的一切))。
  2. 你必须实现标准的控件,如树视图,表格视图,文本编辑器,列表框,组合框,按钮,单选按钮,面板等。
  3. 框架与操作系统分离,不使用任何操作系统对象(窗口句柄)。例如,你在栅格图像或OpenGL窗口上操作,并从操作系统接收鼠标/键盘事件,你必须调度/解释。
  4. 有多个窗口可以移动/最小化/最大化,带到前面。
  5. 应该可以使用这个库来重新实现任何矩形窗口(想想禁用动画效果的Win98 gui)。
  6. 不需要显示html页面。
  7. 你不能偷工减料,在ms paint中制作位图,将其blit到屏幕上并说"这是一个窗口"。组件具有几何形状,可配置的颜色,可以调整大小,"锚定"到窗口的不同侧面,相互链接并影响彼此的大小和几何形状(想想Qt 4布局系统)。
  8. 程序员技能-平均以上,至少3年c++经验。

基本上,"Windows桌面"不使用Windows gdi。

我问这个问题是因为我正在为那些从头开始开发类似的东西的人工作(他们的需求非常不寻常,而且我知道没有现有的gui框架符合他们),我怀疑我可能工作得太慢了,这对我的"士气"产生了负面影响。

以前的人在这个项目上浪费了3年的时间(他们用Delphi写的),没有完成它,所以负责人决定放弃它,从头开始。项目与传统的gui非常不同,但应该具有相同的复杂性。

所以我需要另一个程序员的粗略估计(带参数或基于工作经验)来比较。
我的估计需要大约1年或更长时间,但我想知道这是否太长了。

根据维基百科,Qt的开发始于1991年的两个开发人员。他们于1994年创立了Trolltech。最初的Qt发布是在一年后的1995年,所以至少有两年的全职时间(1994-1995)加上他们在1994年之前花在它上面的时间。

问题是,当他们创立Trolltech时,他们可能已经有了足够好的产品来承担公司的财务风险,所以这额外的2年只是冰山一角。根据他们能够利用的投资,他们可能也雇佣了其他人来帮助他们。

即使你考虑到所有与gui无关的核心功能(在我看来,这是最容易编写的部分),并使用一个非常乐观的估计,Qt的初始gui部分仍然需要几年的时间,与你老板期望的3个月相去甚远……

我想说,如果你花一周的时间来规划库的结构,并收集你想要包含在其中的所有特性,你可能会在6个月内完成它。这完全取决于您想要的可扩展性,但我认为一年太长了。

当然,这一切都是基于几年的c++经验和一些GUI设计经验的假设。如果你或你的同事有使用Photoshop等图形设计工具创建各种UI皮肤的经验,这对最终的外观和感觉也会有好处。