2013-03-17 46 views
29

我最近开始使用Qt库,并且我有一个问题。 这是可能的使用QT与Visual Studio没有特殊的加载项?在没有加载项的情况下将Qt与Visual Studio结合使用

我想只使用qt设计器设计UI,并在VS Express中完成其余部分。 我该怎么做?

谢谢。

+4

你为什么要这么做?我的意思是,没有Visual Assist X的VS很笨拙,它不适用于Express。使用Qt Creator,您可以获得出色的自动完成功能和大量时间保护程序 - 为属性生成访问器,从声明中生成定义等等...另外VS根本不支持QML。您仍然可以使用Creator的VS编译器。总的来说,我认为没有理由选择VS Express。 – dtech 2013-03-17 20:42:46

+9

@ddriver一个很好的理由是,如果你已经有了一个Visual Studio解决方案,并且希望为它添加一个QT项目,而不必拥有两个独立的IDE并保持两组设置。 – JBentley 2013-10-09 13:34:16

回答

24

是的,你可以,如果你不希望使用QtVSAddin它是非常容易使用Qt与VS快递没有VS插件和,而无需做任何的UIC或手动MOC步骤。让QMake(与Qt一起安装,但不是QtVSAddin的一部分)创建您的VS项目文件,并在qmake项目文件中执行所有项目设置。无论您何时进行添加/删除表单或来源的更改,都可以修改qmake项目文件并重新生成VS项目。根本不要修改VS项目文件,只将它作为临时项目处理。 QMake会自动将规则添加到VS项目文件以重新运行uicmoc,如果您只是修改源代码或表单,则不需要执行任何操作。

为了配置管理的目的,我发现这是一个更简洁的方法来使用这个工作流程,因为您只将VS项目文件视为临时项目(它们倾向于差异很大并且是pain to maintain in version control)。

几个片段来帮助你:

在你的qmake项目文件确保您添加下面一行到它,这样VS项目文件生成在Windows上运行(QMAKE默认生成生成文件)时。

your_qmake_proj.pro

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 
+0

你实际上可以添加-tp vc到qmake行: qmake your_qmake_proj.pro -tp vc 并且不要更改.pro文件 – 2015-09-25 22:12:49

2

这当然是可以的,但是如果没有加载项,您需要在编译VS中的其余部分之前或通过预编译脚本编写UIMOC所需的文件。

具体来说:

uic.ui文件生成的标头。

moc产生额外的执行文件有Qt的宏在它的类。

加载项可以帮助您在编译其余文件之前,在需要的文件上顺利地调用这些文件。

+0

不客气。 – meyumer 2013-03-17 21:16:24

-2

这是可能的,如果你在QtCreator中创建用户界面,并以生成UI和MOC文件的方式手动设置VS。

但它太多的工作,你可以使用QtCreator这是一个惊人的光IDE。

+0

链接已损坏。 – 2014-05-11 10:34:23

3

CMake的也是一个答案,它不与Visual Studio的快递版本。我的意思是如果你在CMake中使用Qt支持,你可以在Visual Studio中开发Qt项目(就像我已经做了多年),而不使用Qt插件。我只为相同软件包中的调试扩展安装插件。

+0

我已经在QtCreator中的“Installed plugins”下选中了“CMakeProjectManager”。我如何为VS创建一个新项目,然后使用CMake进行编译? – user2180248 2013-03-19 20:07:44

+0

我不确定CMake QtCreator插件包含什么。 CMake官方下载位于:http://www.cmake.org/cmake/resources/software.html。至于如何开始,您需要为您的应用程序创建一个CMakeLists.txt文件,并使用CMake生成Visual Studio解决方案,而不是在Visual Studio GUI中执行此操作。 – drescherjm 2013-03-19 21:35:20

相关问题