我想为我的应用程序制作GUI。它应该在多个平台上工作。我希望大多数代码都可以移植到所有操作系统(unix,windows,MAC)。
GTK和GLib看起来是一个很好的解决方案。我也想使用原生API
如何做到这一切??
答案 0 :(得分:11)
Qt可能对此有好处。
答案 1 :(得分:5)
我喜欢WxWidgets,非常好用。它具有多种语言的绑定,您可以轻松地将它的C ++实现与Win32 API(C代码)混合。
更轻量级的选择是FLTK
答案 2 :(得分:3)
您必须实施 PAL ( 平台抽象层 )。
该层应该通过提供非平台依赖的接口来提供对实际平台调用的抽象。一旦你转移到另一个平台,只需要为该特定平台实现PAL,并且可以按原样使用应用程序的其余部分。
答案 3 :(得分:1)
Qt似乎是一种选择。但是,如果您想使用Windows API,它将无法移植。 Windows中的Qt将使用CreateWindow等内容,但你不会。例如。反汇编IDA最近在Qt中重写,现在是跨平台的。
答案 4 :(得分:1)
我认为值得学习你所针对的每个平台上的原生窗口层。
因此:
我个人并不喜欢QT,因为他们发明了自己的元编译器,使得QT代码(具有讽刺意味)难以移植到非QT环境。然而,QT确实提供了本地Widget集的抽象。
wxWidgets是一个方便的包装API,因为它已经在相关平台上包装了Win32Api,Cocoa api和GTK +。我避免使用它,但因为Wx基于Microsoft MFC - 一个有点过时的Document / View C ++框架,我想了解底层平台。
答案 5 :(得分:0)
请看一下Qt Framework。这将有助于您创建跨平台GUI应用程序。您必须依赖Qt提供的API for Native平台任务,否则,如果继续使用本机API,则您的代码将无法移植。