我准备将我的一个Mac应用程序移植到Windows。 Mac应用程序使用Apple的原生Cocoa / Appkit框架进行UI。 UI是Obj-C代码,核心应用程序功能是可移植的C ++代码。
现在我正在寻找一种方法将应用程序移植到Windows并使其外观和感觉是Windows用户的原生。我的选择是微软的MFC和Qt框架。虽然我确信MFC应用程序具有原生的外观和感觉,但我记得从MFC编码框架本身是非常可怕的。我从开发人员的角度看了Qt并且喜欢它。
但由于我不是Windows用户,因此我不知道Qt应用程序是否具有本机Windows外观。
因此我的问题是:我可以制作(没有很多工作)Qt应用程序的行为,看起来像是用本机Windows框架编写的吗?
答案 0 :(得分:24)
您可以轻松更改Qt应用程序的样式。在Windows和Mac上,默认样式实际上是使用本机函数来绘制窗口,控件等。
此外,Qt确实采取了许多措施,因此即使是应用程序的最小方面(您甚至不会想到的东西)也会模拟特定平台的本机行为。因此,您的Qt应用程序也可以在移植时替换当前的Mac应用程序。
我非常建议您不要使用MFC,您会后悔(特别是如果您从未使用过本机Win32 API)。这与Qt在灵活性和易用性方面完全相反。
答案 1 :(得分:12)
正如您可以阅读doc.qt.io:
Qt Widgets是典型的传统用户界面元素 在桌面环境中找到。小部件很好地融入了 底层平台在Windows,Linux和Linux上提供原生外观 Mac OSX。
Qt对小部件样式和主题的支持使您的应用程序成为可能 适合原生桌面环境。
您可能对名为How to Make Your Qt Application Look Native的演示文稿感兴趣:
Qt在每个支持的平台上使用原生样式API,但是在那里 是一些额外的技巧,你可以用来确保你的Qt为基础 应用程序的外观,感觉和行为更好。这个演讲会 通过示例,提示和滴答来帮助您创建 应用程序在所有平台上看起来都很棒。
答案 2 :(得分:3)
他们看起来有点感觉不太好。
特别是如果你设计的应用程序与Windows一样(就像你使用可可)。我还没有看到色带(有商业第三方克隆)和MFC蓝/黑色样式或分组图标视图中的列表视图。
不幸的是,WxWidgets的编程也非常难看。肯定比MFC更好。 如果您想要一个真正的原生应用程序,MFC(如果您需要快速和小型)或.NET(如果您不关心速度),则只剩下两个选项。
之前的公司在MFC之上有一个50000 LOC层,这对于编写1992这个框架来说更为舒适是必要的。不幸的是,我不知道市场上有什么相同的东西。
问题是,您的客户是否真的很欣赏它成为销售因素的原生外观。我现在正在使用QT因为它足够好了。
答案 3 :(得分:2)
你应该看一下Style reference。是的,这是可能的,并且不需要大量的工作(根本)。
答案 4 :(得分:2)
不,他们没有。它很接近,但控件看起来非本机。人们的意思是它使用Win32 API渲染控件,类似于Windows呈现本机控件的方式,因此性能应该是可比较的。
只有Windows特定于Windows的Windows窗体使用实际的本机Win32控件才能使用常见的UI元素。