独立于平台的图形用户界面
platform independent GUI
我想为我的应用程序制作GUI。它应该在多个平台上工作。我希望大部分代码都可以移植到所有操作系统(unix,windows,MAC)。
GTK和GLib看起来是一个很好的解决方案。我也想使用本机 API
如何做到这一切??
Qt可能对此有好处。
WxWidgets,真的很容易使用。它具有多种语言的绑定,您可以轻松地将其C++实现与 Win32 API(C 代码)混合使用。
http://www.wxwidgets.org/
更轻量级的替代方案是 FLTK
http://www.fltk.org/index.php
你必须实现一个 PAL(平台抽象层)。
此层应通过提供不依赖于平台的接口来提供对实际平台调用的抽象。转到另一个平台后,只需为该特定平台实现 PAL,应用程序的其余部分可以按原样使用。
Qt似乎是一个选择。但是如果你想使用Windows API,它将不是可移植的。Windows中的Qt将使用CreateWindow等东西,但你不会。例如,反汇编器IDA最近用Qt重写,现在是跨平台的。
您针对的每个平台上的本机窗口层是值得的。
因此:
- 可可
Cocoa 是原生的 Mac OS X 窗口层。它是一个Objective-C api,但它并不难学,并且很容易与C或C++进行互操作。 - Win32 API
Windows API 是一个实现 Windows 本机小部件集的 C API。 - GTK+
Unix/Linux 世界更加复杂,因为可以针对完全不同的小部件集实现编写应用程序。您需要选择目标环境默认桌面使用的小部件集:如果您的目标是 Ubuntu,那么 GTK+ (2) 是访问 Unity 桌面"本机"小部件集的目标 API。
我个人不喜欢QT,因为他们发明了自己的元编译器,使QT代码(具有讽刺意味的是)难以移植到非QT环境。然而,QT确实在可能的情况下提供了原生小部件集的抽象。
wxWidgets是一个方便的包装器API,因为它已经在相关平台上包装了Win32Api,Cocoa api和GTK+。但是,我避免使用它,因为Wx基于Microsoft MFC - 一个有点过时的文档/视图C++框架,我想了解底层平台。
- 编辑了一些更正 wrt QT。
请看一下Qt Framework。这将帮助您创建跨平台的 GUI 应用程序。您必须依靠Qt提供的API来完成本机平台任务,否则,如果您继续使用本机API,则您的代码将无法移植。
- Qt5 用户界面编译器:-i 选项不可用
- QMenuBar 不使用原生样式? c++ , QTDesigner.用户界面
- 如何将C 中的后端写入与TCL/TCK用户界面连接
- 是否可以通过图形用户界面 (GUI) 与 Linux 命令行界面 (CLI) 进行交互
- 拥有用于QT应用程序的Web用户界面的最佳方法
- 面向海思处理器的用户界面SDK
- 如何在C++中使用我自己的库创建用户界面
- 使用 C++ 进行用户界面设计
- QT 图形用户界面进度条
- 用户界面在 qt 应用程序中未更新
- 带有 c++ 的图形用户界面.当我使用按钮时滞后
- Leap Motion C++的用户界面
- C++图形用户界面和控制台应用程序
- 在C++中实现一个基于文本命令的用户界面
- 向图像查看器插件添加用户界面
- 什么是CLSID?是图形用户界面吗?
- 与GLUT一起使用的独立于平台的用户界面库
- 用户界面-是否存在用于C++的跨平台GUI库(具有依赖于平台的UI和基于脚本的布局)
- 独立于平台的图形用户界面
- 创建c++图形用户界面:最简单的方法是什么?