您如何编写跨平台GUI工具包?

时间:2012-10-09 10:36:35

标签: user-interface cross-platform

与qT,wxwidgets等工具包一样,API设计器如何提供和api相同,即使它调用完全不同的系统调用?例如,在Windows操作系统中,您必须在GDI中使用大量功能。在Linux上,您必须在XLib中使用大量功能,以及分发在其他任何其他层。您应该如何设计可以统一所有功能的widgit工具包?那么说CreateWindow()会在任何平台上创建一个windon?我不理解如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以使用更通用的东西,而不是使用Xlib或GDI。例如,您可以使用OpenGL,它在任何地方都受支持。我认为这就是Blender的UI所做的。

可以修改某些工具包,以便为他们支持的每个平台使用某种后端。这基本上是Qt所做的。在Mac OS X上,Qt应用程序使用Cocoa作为后端。 OS X的Qt专门针对该操作系统而制作。但是,在其他平台上还有其他Qt实现,因此Qt可以在多个平台上运行。 SWT for Java以相同的方式工作(使用OS的本机工具包作为后端)。

其他工具包可以使用某种高级图层进行渲染。例如,Swing for Java完全使用Java API呈现,并且根本不依赖于任何平台。