Qt应用程序在Windows下看起来和感觉都是原生的吗?

22 windows qt

我准备将我的一个Mac应用程序移植到Windows.Mac应用程序使用Apple的原生Cocoa/Appkit框架进行UI.UI是Obj-C代码,核心应用程序功能是可移植的C++代码.

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

但由于我不是Windows用户,我不知道Qt应用程序是否具有本机Windows外观.

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

Chr*_*ica 25

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

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

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

  • 嗨,例如,在Mac中,在使用Objective C + Cocoa/Swift设计的应用程序中,滚动条表现出弹跳效果,如果你以高"速度"击中滚动区域的顶部或底部,你会看到滚动条和区域在恢复之前反弹一段距离.Mac上的Qt应用程序不会出现此行为.. (5认同)
  • 如果您查看Qt的来源,您会发现这些陈述具有误导性.Qt重新实现了Windows的外观和感觉.如果它调用本机GUI函数,则这些样式在Linux上不起作用.更准确地说,它使用本机光栅图形功能. (4认同)
  • @ user1095108我认为您正在考虑Qt的“ Windows 95”主题吗?那确实是一种模仿。但是,本机主题实际上*不能*在Linux或Windows以外的其他任何地方使用。 (2认同)

Bil*_*ill 12

正如您可以在doc.qt.io阅读:

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

看看Qt Widget Gallery:

Qt对小部件样式和主题的支持使您的应用程序能够适应本机桌面环境.

您可能对如何使您的Qt应用程序看起来像本机的演示文稿感兴趣:

Qt在每个支持的平台上使用本机样式API,但是您可以使用一些额外的技巧来确保基于Qt的应用程序的外观,感觉和行为更好.此演示文稿将通过示例,提示和标记来帮助您使应用程序在所有平台上都看起来很棒.


Mon*_*eur 5

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

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

  • 不仅 Windows 特定框架使用本机 API。还有像 wxWidgets 这样的跨平台框架。 (2认同)

Lot*_*har 5

他们看上去有点,但感觉并不多。

特别是如果您在设计应用程序时考虑到了Windows(例如您对可可粉所做的事情)。我还没有看到功能区(有第三方的商业副本)和MFC蓝色/黑色样式或分组图标视图中的列表视图。

不幸的是,WxWidgets的编程也很丑陋。当然要比MFC好。如果您想要一个真正的本机外观应用程序,则只剩下两个选项:MFC(如果需要快速而小型的)或.NET(如果您不关心速度)。

以前的公司在MFC之上有一个50000 LOC层,这对于能够更舒适地对此1992年框架进行编程是必需的。不幸的是,我不知道市场上有什么可以做的。

问题是您的客户是否真的欣赏它是否成为销售因素的本机外观。我现在正在使用QT,因为它已经足够好了。

  • 是Qt,而不是QT(快速时间)。 (2认同)