现在我正在寻找一种方法将应用程序移植到Windows,并使其看起来和感觉像对Windows用户本地化的应用程序。我的选择是微软的MFC和Qt框架。虽然我确定MFC应用程序具有本地外观和体验,但我记得MFC编码本身很糟糕。我看了一下Qt并从开发人员的角度喜欢它。
但是,由于我不是Windows用户,我不知道Qt应用程序是否具有本地的Windows外观和体验。
因此我的问题是:我能否(不需要很多工作)使Qt应用程序表现和外观像使用本地Windows框架编写的应用程序?
您可以轻松更改Qt应用程序的样式。在Windows和Mac上,默认样式实际上使用本机功能绘制窗口、控件等。
此外,Qt采取许多措施,即使是应用程序中最微小的方面(您甚至不会考虑到的事情),也会模拟特定平台的本机行为。因此,当移植时,您的Qt应用程序也可以替换当前的Mac应用程序。
我强烈建议您不要使用MFC,否则您将会后悔(尤其是如果您从未使用过本地Win32 API)。与Qt相比,它完全缺乏灵活性且难以使用。
如您所见 doc.qt.io:
Qt Widgets 是传统的用户界面元素,通常在桌面环境中使用。 这些小部件可以良好地集成到底层平台,并在 Windows、Linux 和 Mac OSX 上提供本地外观和体验。
Qt 对小部件样式和主题的支持使您的应用程序能够适应本机桌面环境。
您可能会对名为How to Make Your Qt Application Look Native 的演示文稿感兴趣:
Qt 在每个受支持平台上使用本机样式 API,但是还有一些额外的技巧可供使用,确保您基于 Qt 的应用程序外观、体验和行为更佳。本演示将通过示例、提示和技巧来帮助您在所有平台上使您的应用程序表现出色。
不,它们并不是。虽然相似,但控件看起来不是本地的。人们的意思是,它使用Win32 API来呈现控件,类似于Windows呈现本地控件的方式,因此性能应该是可比较的。
只有像.NET Windows Forms这样的Windows特定框架才使用实际的本机Win32控件来创建常见的UI元素。
它们看起来有点丑,但感觉上不是很糟。
特别是如果你设计应用程序时考虑了Windows(就像使用Cocoa一样)。我还没有见过类似于“带鱼缝”的界面(商业第三方克隆除外)或以组合图标视图形式存在的MFC蓝/黑色样式或列表视图。
不幸的是,WxWidgets编程也非常丑陋。肯定比MFC好一些。如果你想要一个真正原生的应用程序,只剩下两个选择:如果你需要快速和小巧,那么使用MFC;如果你不关心速度,则可以使用.NET。
之前的一家公司在MFC上面有50000行代码,这是必要的,以便能够更加舒适地编程这个1992年的框架。不幸的是,我现在还不知道市场上是否有类似的东西可用。
问题是你的客户是否真的重视原生外观,使其成为销售因素。我现在使用QT,因为它足够好。
QWindowsStyle
,它是QWindowsXPStyle
和QWindowsVistaStyle
的基础,不知道它是 '95。怎么说“主题”?它是一种风格。 - user1095108