c++ - 如何在 Windows 和 Mac 上提供原生用户界面?

标签 c++ objective-c windows macos

我知道可以用 C++ 编写代码并使用 Objective C 制作原生 Mac UI,使用 Visual C++ 制作原生 Windows UI。

有人可以指点我一个教程或编写一个示例代码来教我如何做到这一点吗?

注意

我知道 Qt 或 wxWidgets,但这不是我想要的解决方案。我真的很想给人一种土生土长的感觉。

最佳答案

虽然你说你知道Qt和wxWidgets,但我还是推荐你使用它们。您可以使用它们制作具有原生感觉的应用程序。

您总是需要实现某种抽象层,因为 Windows 和 Mac 的 UI 实现方式大不相同。您将需要找到共同的模式,找到如何抽象事物的方法,以便可以以类似的方式访问不同的事物。为此,您需要非常了解 Windows 和 Mac 编程。您将花费大量时间尝试寻找解决方法和搜索错误。对于 Windows 或 Mac OS X 的每一次新迭代,您都需要再次开始解决错误和/或集成新行为。

如果您正在编写商业应用程序,使用跨平台库将为您节省大量时间和麻烦,从而节省金钱。

编辑好吧,如果你被迫走那条路,我建议你这样做:

将应用程序分为两部分:一个不了解 UI 的后端,它执行所有业务逻辑,然后是 UI 部分。您将需要实现完全彼此分离的 UI,并且不能在它们之间共享太多代码。毕竟,如果你想找到共同点(例如,如果你想统一创建和使用按钮),你也可以再次使用跨平台 UI 库......

好处是您可以使用每个操作系统可用的每个晦涩的 UI 功能。缺点是您需要维护两个 UI,因此如果您向一个 UI 添加一项功能,您也需要在另一个 UI 中重新实现它。

但您可能希望为后端使用跨平台库来统一文件处理、网络和线程等内容。

关于c++ - 如何在 Windows 和 Mac 上提供原生用户界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891942/

相关文章:

android - 如何在 Android Studio 1.0 中查找过滤器 Logcat 配置?

c++ - 掩蔽和转移

IOS/objective-C : Launch UIAlertController from code in subclassed Class in Storyboard app

c++ - MySQL与Qt远程连接

ios - 在 UITableViewCell - Objective C 中单击 UiImageView 后如何访问表格单元格

ios - 将 dSYM 上传到 Crashlytics 是否安全?

windows - 如何强制 `findstr`忽略 `Cannot open`返回

c# - 如何在窗体上显示必填字段

c++ - 即使在使用守卫后也不能使用在另一个类中定义的结构

c++ - 指向 vector 的共享指针