使用 Qt 制作几乎原生的 Windows 应用程序?

Posted

技术标签:

【中文标题】使用 Qt 制作几乎原生的 Windows 应用程序?【英文标题】:Using Qt to make an almost native Windows Application? 【发布时间】:2009-11-07 01:37:41 【问题描述】:

我喜欢 Qt 是跨平台的,但我想制作一个可以调用某些 Windows 特定 .dll 的应用程序。有点像 Google Chrome 在 Windows Vista/7 上使用玻璃(我知道 Chrome 不是使用 Qt 框架编写的,只是认为这是一个很好的例子)。

如何在 Qt 中做到这一点?可行吗?

【问题讨论】:

【参考方案1】:

是的,这没问题。你就去做吧! Qt 本身只是一个你调用的 DLL,它恰好在不同的平台上是相同的。只需链接到您喜欢的 DLL 并调用它们。

如果你愿意,使用 Qt 制作一个仅限 Windows 的应用程序并没有错。

【讨论】:

【参考方案2】:

只要你手头有相关的 Windows SDK 头文件,并且可以链接到相应的库,那么混合和匹配 Qt 和 Win32 代码是很容易的。我使用 Qt Creator 进行 C++ 开发,它与 MinGW 一起提供,包括所有最常见的 Win32 SDK 头文件和库。你甚至可以用合适的#ifdefs 包装你的代码的 Windows 特定部分,以防你为不同的平台构建,例如:

#ifdef Q_OS_WIN

#include <windows.h>

void someWindowsSpecificFunc()

  ...


#endif // Q_OS_WIN

【讨论】:

【参考方案3】:

您当然可以直接从 Qt 代码中调用 WinAPI 函数,那么最好包含 qt_windows.h 而不是 windows.h。

如果您只想将酷炫的 Windows 7 新功能添加到您的应用程序中,那么您最好使用专用的 Qt 插件。有一个叫Q7Goodies。

【讨论】:

【参考方案4】:

勇敢地继续编写您的 Win 专用应用程序。您可以使用所有您想要的 Windows DLL。从这个意义上说,Qt 没有限制。您仍将受益于那些漂亮的 Qt 布局组件和可定制的皮肤。在换肤方面,没有比 Qt 更好的框架了。您的用户会喜欢您提供给他们的所有可调整大小的对话框。

【讨论】:

以上是关于使用 Qt 制作几乎原生的 Windows 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序

在 Mac 和 Windows 上部署 Qt+Boost 应用程序

将 Qt 应用程序从 Linux 移植到 Windows

带有 Qt/QML 应用程序的 Windows 7 中的自定义触摸行为

使用 Qt 同时运行线程

正点原子Linux移植Qt,正点原子I.MX6U Qt综合例程源码