# vs studio 集成qt环境

945 阅读4分钟

主要内容介绍

本篇博客,主要讲解一些vs 集成qt环境的方法,同时让工程支持qt源代码调试,以及怎么把一个原本的控制台工程,修改为一个qt工程。 博客后面会提供简单例子。

环境介绍

  • VS 版本: Visual Studio Professional 2022 (64 位)
  • QT 版本: 5.12.0

操作步骤

1. 安装 qt 的安装文件

1714183416079.jpg

  • 点击 qt-opensource-windows-x86-5.12.0.exe 安装文件

1714183647694.jpg

这里需要一个账号,可以自行注册一个

选择一个安装目录,默认的即可,如果你c盘不够,可以换个目录

image.png

下一步选择要安装的控件

image.png

重点要把MSVC_201764-bit MSVC_201764-bit 这两个组件装上。因为后面vs studio就是用这个来作为qt的编译器的。其他的,如果空间够,可以都选上。

后面就是一直下一步

2. 在vs里面安装 qt vs tool 扩展插件

  • 打开 扩展--> 管理扩展

image.png

搜索 qt vs tool ,将这个 插件上

安装成功后,扩展里面就多了一个qt组件

f572dfe68a5a1505d12b949ad007797.jpg

选中Qt Versions 选项弹出一下界面

image.png

我这里已经有了一个设置,新安装的,应该没有或者一个default的,删除。然后新建一个 输入一个名字,然后选中你的路径

image.png

以下是我的路径:

image.png

把身上面的路径地址拷贝进去,比如我的 C:\Qt\Qt5.12.0\5.12.0\msvc2017_64

image.png

然后点击确定

3. 接下来,我们创建一个qt工程测试

vs里面 文件->项目->新建项目

image.png

image.png

image.png

选中你需要的配置 image.png

创建成功了工程 image.png

运行本地调试器 image.png

image.png

好的,到这里,环境就搭建好了,你就可以进行vs里面qt开发了

改造控制台工程qt支持

在有的时候,我原本已经开发了一些代码,但是是普通的window控制台工程,但是我现在要增加界面。以下将介绍怎么操作

比如我有一个下面的工程

image.png

运行起来是这样的

image.png

下面分几个步骤改造它:

  • 点击项目右键盘->QT->Convert to QT/MSBuildProject

aa1b8cbcd1b66a6dbd4bf2642aea44c.jpg

然后qt选项里面就有以下选项

729010814ee2cf787b40fefeb6cd220.jpg

  • 点击项目右键-添加->新建项

创建一个qt的ui文件 image.png

这里就创建了一个ui文件,系统也自动打开额了qt Designer,可以可视化修改ui效果 image.png

  • 点击ui文件,右键属性打开一个界面,里面有个uic,这个是用于ui生成c++头文件的

image.png

image.png

这个Ouput Directory 是处生成ui的cpp头文件的出处目录,我修改成我自己的目录

image.png

比如我直接指定成解决方案的目录

然后点击ui文件右键 编译按钮,就会生成一个 ui的头文件

项目运行的时候,也会自动比编译一下这个ui

image.png

然后我们项目右键-添加-新建项

image.png

创建一个 QT Class,命名为 MyQtMainWindow

image.png

image.png

这个时候,我们会发现很多头文件找不到,这是因为我们没有引入qt的库。

项目右键->QT->Qt Project Setting

image.png

打开Qt Modules,显示以下界面, image.png

我们选中我们常用的,比如 image.png

这个时候,如果项目没有选中正确的qt,注意选择一下

image.png

image.png

构造函数QOject 改成 QWidget

image.png

这时项目应该可以正常生成了

在头文件里面吧ui引入进来

#pragma once
#include <QMainWindow>
#include "ui_MainWindow.h"

class MyQtMainWindow  : public QMainWindow
{
	Q_OBJECT

public:
	MyQtMainWindow(QWidget*parent);
	~MyQtMainWindow();

private:
	Ui::MainWindow* ui;
};

在cpp里面构造,和装载ui

#include "MyQtMainWindow.h"

MyQtMainWindow::MyQtMainWindow(QWidget*parent)
	: QMainWindow(parent), ui(new Ui::MainWindow)
{
	// SETUP UI
	ui->setupUi(this);
}

MyQtMainWindow::~MyQtMainWindow()
{}

接下来在main里面显示

#include "MyQtMainWindow.h"

int main(int argc, char* argv[]) 
{
    std::cout << "Hello World!\n";

    QApplication app(argc, argv);

    MyQtMainWindow* qwindow = new MyQtMainWindow(nullptr);
    qwindow->show();

    while (true)
    {

    }
}

点击运行程序,成功得到以下:

image.png

到这里改造就成功了。

这里发现,控台的框还在显示,可以点击项目右键-属性-链接器-系统-子系统,选择窗口,就不会再袒护控制台了 image.png

增加qt源码符号链接

在我们 使用qt的时候,我们没有办法调试到源码里面去,这是因为 qt默认没有带pdb符号,我们也没有链接。以下方法,可以让我们调试到qt源码里面去

  • qt的模块pdb符号,需要一个一个手动下载 下载地址

比如这个base的

image.png

实际我们按需下载需要的,然后加压成下面的解构:

image.png

将这个 msvc2017_64 拷贝到qt的目录里:

image.png

  • 接下来在vs里面配置符号 打开 工具->选项->调试->符号 增加一个目录,加入三个目录

image.png

点击在解决方案上,右键 –> 属性 –> 通用属性 –> 调试源文件

image.png

现在你就可以断点到qt源代码内部了

image.png

其他

感谢大家的阅读,有什么问题可以联系我