2010-08-07 28 views
8

今天我试图在Cocoa和MacOSX 10.5中实现所有者绘制的菜单项支持。我想到了我打算用于某些其他项目的QT时发现的非常可怕的东西。QT在MacOSX上有一个未来的GUI工具包吗?

如果我看到它的话,那么在MacOSX上就没有QT的未来了,因为整个外观管理器在10.5中完全不赞成使用(我甚至找不到公共URL),甚至是“开发人员”颜色列表和NSColor中的颜色“常量”被标记为不稳定,不使用。

有了这个政策,像QT这样的工具包就没有办法选择,然后放弃MacOSX支持,这对于苹果来说更有意义(记住诺基亚是竞争对手)。而苹果也不在乎放弃Carbon和Java。

所以我错过了什么。是否有任何一种可可外观经理或QT团队可以使用合理回退的技术?我很害怕在10.7或10.8的外观可能会非常不同。

并请所有谁想要关闭这个问题为主观请考虑我要求围绕这个问题的解决方案的技术工作。它不是讨论好坏,但是如果有办法解决这个限制。

对我来说,这是一个严重的商业决策,如果做错了,并且相信QT会成为失败,那么很容易就会花费数万美元。

编辑: 这是一个链接告诉我,即使系统颜色不再支持 Accessing System Colors。这是正确的主题变化石墨不会导致颜色列表更改通知。

+0

究竟是什么问题? Qt的可可版本在10.6上运行。 – andref 2010-08-07 15:26:45

+0

可可版本是什么意思?仅使用NSView和NSOpenPanel对话框的QT?这完全没有帮助。可可版本必须使用所有Cocoa小部件,这不是QT背后的概念。NSView与在Windows上使用HWND或在X11上使用Window相同。 – Lothar 2010-08-07 15:36:24

+0

啊,我明白你的意思了。你想知道的是,如果有一种Cocoa替代HITheme(这是Qt用于在裸露的NSView上绘制图形的东西),以防苹果将Carbon降为好(它还没有,请参阅iTunes)。改变这个问题,让更多的可可和更少的Qt可能会吸引合适的人。 – andref 2010-08-07 17:23:33

回答

3

我放弃了试图让QT看起来很原生。它永远不会工作,因为有太多微妙的行为,没有任何跨平台工具包可以模仿到足以愚弄用户。如果本机应用程序是目标,那么花点时间为想要支持的平台创建本地接口会容易得多。

让我无法倾倒QT的东西不熟悉Xcode和Objective-C。您可能已经知道这一点,但您可以重命名Xcode中的任何Objective-C(.m)文件以编译为Objective-C++(.mm)。这可以让你链接你想要的所有C++代码,就在你的项目中需要它的地方。

+0

我想,我仍然会使用Qt for Windows工作。它足够接近,标准较低,并且不太令人沮丧。 – 2010-08-17 20:31:12

+0

你可以放下什么地方最烦人的微妙行为。 – Lothar 2010-08-18 01:14:45

+0

@tewha:是的,我认为是相同的,然后来到Windows Vista,Ribbons,新的对接工具,Word 2007颜色以及MFC Feature Pack中的所有其他内容。我讨厌MFC,但我担心QT不再是原生的了 - 这取决于你正在编写的应用程序。 – Lothar 2010-08-18 01:17:38