首页 > 代码库 > VS 2013+Qt 5.4.1

VS 2013+Qt 5.4.1

Qt应用能够用Qt Creator开发,也能够使用Visual Studio。

我之前一直用Qt Creator。也始终认为这是最好的选择。只是有人偏爱Visual Studio,我也由于工作须要,要使用Visual Studio来开发Qt应用。记录一下安装配置过程。

资源下载和安装

须要下列资源:

  • Visual Studio 2013
  • Qt SDK 5.4.1(qt-opensource-windows-x86-msvc2013_64-5.4.1.exe)。这是Qt SDK。开发Qt应用必须的。
  • Visual Studio Add-in 1.2.4 for Qt5(qt-vs-addin-1.2.4-opensource.exe),这是Qt官方提供的针对Visual Studio的插件。作用是注冊到Visual Studio中,生成一个名为QT5的菜单。

你也能够下载其他的Qt版本号或VS Add-in,这里有全部的http://download.qt.io/archive/。

安装没什么顺序要求,随便。

值得注意的是,假设你的 VS 2013安装后一次也没启动过,然后安装了Qt VS Add-in,然后再启动VS 2013,会发现没有QT5菜单,只是没关系。重新启动一下VS 2013就可以看到以下的图片:

技术分享

我蓝圈标注的就是新增的QT5菜单。

接下来就能够配置Qt版本号了。

配置

打开QT5菜单,例如以下图:

技术分享

选择Qt Options,出现下图:

技术分享

点击图示的Addbutton,能够加入版本号。例如以下图:

技术分享

在弹出的Add New Qt Version对话框里,填写 Qt 版本号,然后选择Qt路径。

特别提示:VS2013中加入Qt版本号时,找的是bin文件夹下的qmake。所以。应该选择相似“C:\Qt\Qt5.4.1\5.4\msvc2013_64”这种。假设不是酱紫的路径。就会报相似以下的错误:

技术分享

配置了正确的Qt Version。点击OKbutton后。效果例如以下:

技术分享

点击OKbutton,配置就完毕了。

如今你能够在通过QT5菜单打开pro文件了。

VS里能够配置多个Qt版本号,相互不冲突。

VS中导入Qt项目

VS的QT5菜单中有一个“Open Qt Project File(.pro)”子菜单,通过它能够打开一个Qt项目。

我通过Qt Creator创建了一个Qt项目HelloQt。然后在VS中打开pro文件,效果例如以下图所看到的:

技术分享

到这里你就能够编译执行了,按CTRL+F5就可以。

实际上你在VS中打开pro文件时,Qt提供的VS Add-in会自己主动生成
个vcxproj文件(VC项目文件)。例如以下图:

技术分享

当你关闭项目时,还会提示你保存解决方式(sln文件)。

你保存后。下次能够直接通过sln打开Qt项目。

新建一个Qt项目

我刚才是先用Qt Creator创建了一个项目。然后通过VS QT5菜单导入。让VS Add-in自己主动生成了一个适合VS的项目文件(vcxproj)。

实际上我们也能够通过VS文件菜单,直接新建一个Qt项目:文件->新建->项目->Qt5 Projects->Qt Application。

新建Qt5项目时,能够选择项目类型。比方Qt Application或Qt Library。还能够选择项目依赖的模块。试一试吧。

用qmake创建一个Qt VSproject

最后另一种方法,直接使用Qt SDK里的qmake工具来创建适合VS的Qt项目。通过開始菜单里的Qt 5.4.1中的Qt命令行工具,进入你的project文件夹,执行下列命令就可以:

  • qmake -project -t vcapp -o xx.pro(说明:假设你的project文件夹就是项目名字,就能够去掉-o xx.pro这两个參数)
  • qmake

然后就能够看到xx.vcxproj文件了。

注意。假设你的project文件夹是空的,没有源文件,那上面的命令是无效的。


我个人比較习惯Qt Creator来开发。假设你也是如此,那实际上能够在Qt Creator里来开发,开发工作完毕后,再导入到VS中来看看有没有什么问题。假设你选择Qt SDK时就选择了msvc2013版本号的。搭配VS2013,那基本上是不太可能出问题的。

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

VS 2013+Qt 5.4.1