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