Cocoa 上的 Qt 或 wxWidgets?

Posted

技术标签:

【中文标题】Cocoa 上的 Qt 或 wxWidgets?【英文标题】:Qt or wxWidgets on Cocoa? 【发布时间】:2010-07-08 16:47:49 【问题描述】:

有人告诉我最新的 Qt 是基于 Cocoa 的,因此它是 64 位的。 Cocoa 是基于 Object-C 的,而 Qt 是基于 C++ 的。

这怎么可能?我的意思是,基于 C++ 的库如何变成与 Objective-C 相关的库?这只是使用Objective-C++吗? 任何 C++ 库都可以使用 Objective-C++ 以 Cocoa 为基础吗?

【问题讨论】:

【参考方案1】:

Objective-C++ 允许您将 C++ 和 Objective-C 组合在同一个源文件中。所以你可以在这里做一些有趣的事情。例如,我之前创建了调用 Cocoa 的 C++ 类,例如 NSNotification。

所以我怀疑你只是用 C++ 编写,调用 C++ 对象...这些对象被实现为 Objective-C 方法的 C++ 包装器。

wxWidgets 也有类似的事情,wxCocoa,但我上次听说那是未来的 Mac 平台,这意味着他们仍在构建它。

【讨论】:

【参考方案2】:

Objective C 是 C 的严格超集。这意味着任何有效的 C 程序都可以使用 Objective C 编译器进行编译。由于 C++ 向后兼容 C,因此连接它们相当简单。 C++ 部分只需要了解一些 Objective C 的运行时库。

【讨论】:

【参考方案3】:

Qt 是 C++,句号。将一种语言与另一种语言(在本例中为 C/C++/Objective-C/Objective-C++)进行交互非常简单。

Qt 默认使用 Cocoa,但仍然可以是 32 位,请参阅http://doc.qt.nokia.com/4.7-snapshot/developing-on-mac.html 了解一些通用的 mac 特定信息。

【讨论】:

【参考方案4】:

Qt。混合 Cocoa 和 Qt 很容易:http://www-sop.inria.fr/dream/blog/2009/03/mixing-cocoa-and-qt-through-carbon/

【讨论】:

以上是关于Cocoa 上的 Qt 或 wxWidgets?的主要内容,如果未能解决你的问题,请参考以下文章

MacOS 上的 Qt/Cocoa - 移除进度条动画

图形界面库Windows Forms MFC WTL WxWidgets Qt GTK 综合比较

我如何在 Mac OS X 上判断我是不是安装了 Carbon 或 Cocoa 版本的 Qt?

访问 Cocoa 和/或 Carbon 以在 OS X 上自动启动(在 C++ 上也使用 QT)

Mac 上 Qt 的 Cocoa Sourceview 有替代品吗?

Qt 4.5发布(最大的变动是换用LGPL许可证,移植进了苹果的Cocoa框架。之前的Qt只支持Carbon框架,现在的Qt 4.5两者都支持。单一源代码创建出支持32位或64位字节的Intel或Po