我对 C++ 很陌生 我希望能够使用 Qt 库、qtcore 和 qtwidgets 来制作 GUI 应用程序。我也想使用 Visual Studio IDE。
我已经从qt安装程序下载了Qt库,它位于我的c盘中。我有qt版本6.6.0
在6.6.0文件中我有以下文件:
mingw_64 msvc2019_64 msvc2019_arm64 来源
我已将 %QTDIR%\lib 和 %QTDIR% 添加到我的路径中。
基本上我想要的是一个解决方案,例如当我在 main.cpp 文件中有 #include 时。
我看过 youtube 和一些关于堆栈溢出的帖子,并尝试了一些解决方案,但无法得到我想要的工作......
我使用的是 Windows 11
扩展程序完成了大部分工作。如果您对 Qt/VS 非常陌生,那就应该这样做(但我建议您阅读我的答案的下一部分以熟悉正在发生的事情):
安装后:
main(int, char**)
功能+默认对象(小部件、QML窗口等)会自动创建。moc
和 uic
的调用,仅举较常见的一些。当然,也可以在 Visual Studio 中手动配置所有内容,如果您不想依赖扩展或者您
在不允许安装 Qt 扩展的公司工作。
明显的缺点是,除了选择正确的项目之外,还有更多的配置工作要做:
可选但强烈建议:为了稍后节省时间,请打开“视图”>“其他窗口”>“属性管理器”。
在用户宏中,创建属性表(您需要 1 个用于调试,1 个用于发布)以供项目存储:
%QTDIR%
,但我发现在那里创建它比在环境变量中创建更方便,例如与其他人共享您的 VS 配置)。$(QtVersion)
变量定义,否则上面的内容将毫无用处。moc
、uic
和其他具有默认参数的工具的调用(调试和发布的调用可能有所不同)。 WinDeployQtExe
分别拨打 "$(QTDIR)\bin\windeployqt.exe" --debug
/"$(QTDIR)\bin\windeployqt.exe" --release
.lib
文件的变量(例如 Qt6Cored.lib
用于调试,Qt6Core.lib
用于发布)。如果完成所有这些操作,其余配置可以立即应用于所有配置。
回到项目属性,VC++目录:
$(QTDIR)\include
作为包含目录(如果您跳过了上述可选步骤,则添加 %QTDIR%\include
;对于我的其余答案,我假设您已应用它)。$(QTDIR)\lib
作为库目录。在常规下,确保 C++ 语言标准为
ISO C++ 17
(Qt6 必需)。
在 C++ > 命令行下,添加附加选项
/Zc:__cplusplus
。
在“链接器”>“输入”下,将必要的 Qt 库(例如
$(QtCoreLib);$(QtGuiLib);$(QtWidgetsLib)
)添加到“附加依赖项”
对于您需要编译的每个标头 ui、qrc、ts、... 文件,请转到它们的属性:
Custom build tool
。.h
文件:$(Qtmoc) %(Fullpath) -o ".\GeneratedFiles\$(Configuration)\moc_%(Filename).cpp"
)、描述、输出列表和其他依赖项(例如,$(QTDIR)\bin\moc.exe;
)。选择
All configurations
和All platforms
后,不要忘记执行上述操作。在“构建事件”>“构建后事件”下添加 2 个命令行以将 DLL 复制到输出目录:
SET "VCINSTALLDIR=$(VCInstallDir)"
$(WinDeployQtExe) --compiler-runtime --no-translations --no-system-d3d-compiler "$(OutDir)$(TargetFileName)"
在这两种解决方案中,您仍然需要手动执行一些操作。
例如,在我的项目中,我必须一次性编译 PSQL 驱动程序 dll,然后手动将其复制到我的 outdir 的
sqldrivers
中。