2011-09-04 58 views
18

我即将将我的一个Mac应用程序移植到Windows。 Mac应用程序使用Apple的原生Cocoa/Appkit框架用于UI。 UI是Obj-C代码,核心应用程序功能是可移植的C++代码。Qt应用程序在Windows下的外观和感觉如何?

现在我正在寻找一种方法将应用程序移植到Windows,并使其看起来和感觉为Windows用户的本机。我的选择是微软的MFC和Qt框架。虽然我确信MFC应用程序具有本地外观和感觉,但是我从MFC编码框架本身记得的内容是非常可怕的。我看了一下Qt,从开发人员的角度来看它。

但是,因为我不是Windows用户,我不知道Qt应用程序是否具有本机Windows外观和感觉。

因此,我的问题:我可以(没有lot的工作)Qt应用程序的行为,看起来像它是用本机Windows框架编写的?

回答

23

您可以轻松更改Qt应用程序的样式。在Windows和Mac上,默认样式实际上是使用本地函数绘制窗口,控件等。

此外,Qt确实采取了很多措施,即使应用程序的最小方面(您甚至不会想到的东西)也能模拟特定平台的本机行为。因此,您的Qt应用程序也可以在移植时替换当前的Mac应用程序。

我非常建议你不要使用MFC,你会后悔的(特别是如果你从未使用过本地的Win32 API)。这与Qt在灵活性和易用性方面完全相反。

+2

如果您查看Qt的来源,您会发现这些陈述是误导性的。 Qt重新实现了Windows的外观和感觉。例如,如果它调用了本地GUI功能,则这些样式在Linux上不起作用。更准确地说,它使用本地光栅图形功能。 – user1095108

+1

@ user1095108我想你正在考虑Qt的“Windows 95”主题?那个确实是一个模拟。但本机主题实际上*不适用于Linux或Windows以外的任何其他地方。 –

+0

我的意思是'QWindowsXPStyle'和'QWindowsVistaStyle'的基础'QWindowsStyle',不知道它是'95。怎么说“主题”?这是一种风格。 – user1095108

3

你应该看看Style reference。是的,这是可能的,并且不需要很多工作(根本就不需要)。

13

正如你可以在阅读doc.qt.io

Qt的Widget是传统的用户界面元素通常 在桌面环境中。这些小部件很好地集成到底层平台上,在Windows,Linux和Mac OSX上提供本机look'n'feel。

Qt Widget Gallery看看:

Qt的用于控件的风格和主题的支持使您的应用程序 适合与本机桌面环境。

你可能有兴趣在一个名为How to Make Your Qt Application Look Native介绍:

Qt的每一个支持的平台上使用本地样式的API,但有 ,你可以用它来进行一些其他技巧确保你的Qt为基础 应用程序看起来,感觉和表现都更好。此演示文稿将通过示例,提示和剔号运行 ,以帮助您在所有平台上使您的 应用程序看起来很棒。

1

不,他们没有。它很接近,但控件看起来不是原生的。人们的意思是它使用Win32 API来呈现控件,类似于Windows呈现本机控件的方式,因此性能应该可以比较。

只有Windows特定的框架,如.NET Windows窗体,对于常见的UI元素使用实际的本机Win32控件。

+0

不仅Windows特定的框架使用本机API。还有像wxWidgets这样的跨平台框架。 –

2

他们看起来有点,他们不觉得很多。

特别是如果你设计的应用程序与Windows的心(像你用可可)。我还没有看到丝带(有一个商业第三方克隆)和MFC蓝/黑风格或分组图标视图中的列表视图。

不幸的是WxWidgets编程也很难看。当然,更好的是MFC。 如果你想要一个真正的原生应用程序,MFC(如果你需要快速和小型)或.NET(如果你不关心速度),只剩下两个选项。

以前的公司在MFC上面有一个50000 LOC层,这对于能够编程这个1992框架来说更舒适一点)。不幸的是,我不知道市场上可以提供的任何东西。

问题是,你的客户真的很欣赏本地化的外观,它成为销售的一个因素。我现在使用QT,因为它足够好。

+0

另一点需要考虑的是,对于某些应用程序,同一用户将同时在不同的操作系统上使用它,并且可能会赞赏应用程序*自己的外观和感觉在各个平台上保持一致。 – hyde

+1

它是Qt,而不是QT(快速时间)。 – jaskmar

+0

最新时间? :d – dani