使用 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 应用程序