C++ 在不带外接程序的Visual Studio中使用Qt

C++ 在不带外接程序的Visual Studio中使用Qt,c++,qt,user-interface,C++,Qt,User Interface,我最近开始使用Qt库,我有一个问题。 在没有特殊外接程序的情况下,是否可以将Qt与Visual Studio一起使用 我只想使用qt designer设计UI,其余的工作在VS Express中完成。 我该怎么做 谢谢。这当然是可能的,但是如果没有外接程序,您需要在VS中编译其余文件之前,或者通过预编译脚本,将所需文件UI和MOC导入 具体而言: uic从.ui文件生成标题 及 moc为包含Qt宏的类生成附加的实现文件 在编译其余文件之前,外接程序可帮助您在所需文件上顺利调用这些文件。如果您在Q

我最近开始使用Qt库,我有一个问题。 在没有特殊外接程序的情况下,是否可以将Qt与Visual Studio一起使用

我只想使用qt designer设计UI,其余的工作在VS Express中完成。 我该怎么做


谢谢。

这当然是可能的,但是如果没有外接程序,您需要在VS中编译其余文件之前,或者通过预编译脚本,将所需文件
UI
MOC
导入

具体而言:

uic
.ui
文件生成标题

moc
为包含Qt宏的类生成附加的实现文件


在编译其余文件之前,外接程序可帮助您在所需文件上顺利调用这些文件。

如果您在QtCreator中创建UI并以生成UI和MOC文件的方式手动设置VS,则是可能的


但是这项工作太多了,你可以使用它,这是一个非常轻巧的IDE。

是的,如果你不想使用,那么在没有VS附加模块的情况下,在VS Express中使用Qt是非常容易的,无需手动执行任何uic或moc步骤。让QMake(与Qt一起安装,但不是QtVSAddin的一部分)创建VS项目文件,并在QMake项目文件中执行所有项目设置。无论何时进行更改(如添加/删除表单或源),请修改qmake项目文件并重新生成VS项目。根本不修改VS项目文件,仅将其视为临时项。QMake将自动将规则添加到VS项目文件中,以重新运行uicmoc,如果您只是修改源代码或表单,则无需执行任何操作

出于配置管理的目的,我发现这是一种更干净的方法来使用此工作流,因为您只将VS项目文件视为一个临时项目(它们往往差别很大,并且是一个临时项目)

有几个片段可以帮助您:

在qmake项目文件中,确保添加以下行,以便在Windows上运行时生成VS项目文件(qmake默认为生成makefile)

你的项目专业版

win32: TEMPLATE = vcapp
此外,有一个批处理文件可以方便地重新运行qmake,这样您就不必启动命令提示符并设置环境(或者在已经设置了环境的命令提示符中将目录更改为您的项目)。如果您没有在Windows中设置各种Qt环境变量(或不希望设置),请确保将它们添加到批处理文件中

makevcproj.bat

set QTDIR=C:\Qt\x.y.z
set PATH=%PATH%;%QTDIR%\bin
set QMAKESPEC=win32-msvcXXXX
qmake your_qmake_proj.pro
pause

CMake也是一个答案,它确实适用于VisualStudio的快速版本。我的意思是,如果你在CMake中使用Qt支持,你可以在VisualStudio中开发Qt项目(就像我多年来所做的那样),而不需要Qt插件。我只为同一个包中的调试扩展安装插件

你为什么要这么做?我的意思是,没有视觉辅助X,VS是笨拙的,它也不能与Express一起工作。使用QtCreator,您可以获得出色的自动完成功能和大量节省时间的功能—为属性生成访问器,从声明生成定义,等等。。。加上VS根本不支持QML。您仍然可以使用Creator提供的VS编译器。总的来说,我认为选择VS Express没有什么好的理由。@ddriver一个好的理由是,如果您已经有一个Visual Studio解决方案,并且希望在其中添加一个QT项目,而不必有两个单独的IDE和维护两组设置。我已经在QtCreator的“已安装插件”下选中了“CMakeProjectManager”。我如何为VS创建一个新项目,然后用CMake编译它?我不知道CMake QtCreator插件包含什么。CMake的官方下载位于此处:。至于如何开始,您需要为您的应用程序创建一个CMakeLists.txt文件,并使用CMake生成Visual Studio解决方案,而不是在Visual Studio GUI中执行此操作。实际上,您可以将-tp vc添加到qmake行:qmake your_qmake_proj.pro-tp vc,并且不更改.pro文件