Sub*_*ged 8 c++ user-interface qt sublimetext2
作为跨平台文本编辑器Sublime Text 2的粉丝,我一直在研究它是如何开发的.开发人员已经注意到它有一些99%的c ++与一些GTK for linux并且它使用他称之为"Sublime GUI"的自定义UI工具包.这是dev的引用
Sublime Text 2本身使用自定义UI工具包.有很多应用程序可能没有意义,但对于Sublime Text来说,这不是一个不合理的选择,我总是知道很多UI控件都必须是自定义的,无论工具包如何(例如,文本控件和选项卡控件).UI工具包位于跨平台抽象层之上,它更像是平台功能的联合而不是最低的共同标准.
我的问题是,跨平台抽象层有哪些选择?我认为这比GTK,QT,SDL低.我试图弄清楚如何创建一个跨平台的自定义UI工具包,只需要编写一次代码.
我很欣赏UI工具包的好处,但是如果我想弄清楚并且在Windows,Linux,Mac上支持我的应用程序,我不知道从哪里开始.
我猜最重要的问题是如何绘制和获取键盘和鼠标事件。
如我所见,有两种绘制方法:
当然,您需要为每个平台实现某些功能。使用OpenGL,您需要为每个平台编写上下文(WGL,GLX,..)处理,而使用本机绘图基础结构,则需要进行更多工作。由于所有绘图基础结构都是唯一的,因此您可能想为绘图编写一个抽象,然后在绘图抽象层中实现小部件。
至于事件处理,我认为您还需要编写自己的抽象,因为事件处理对于每个平台都是唯一的。
最后,您还应该具有一个抽象层,用于创建在其中绘制小部件并从中获取事件的主窗口。
使用OpenGL时,您可以从glut开始,它已经处理了窗口创建和事件处理。
请记住,我从未实现过这样的事情。但是,我可能会尝试OpenGL方法,因为我认为达成目标的工作量较小。
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |