vs_qt 联合开发

VS QT 联合开发

  • 配置
    • 环境
    • 流程
    • SDK 更新
    • qt qmake 版本选择
    • qt 5 联合 vs2019
  • 问题
    • This application failed to start because it could not find or load the Qt platform plugin "windows" in
    • 打印输出
    • LNK2019 无法解析的外部符号
    • vs编译出现未加载 wntdll.pdb
    • LNK2001

配置

环境

推荐先安装好VS2017,
再安装好QT,注意选择对应的组件。

在这里插入图片描述

流程

方法1:点击vs2017的工具—扩展和更新—联机—搜索并下载qt
在这里插入图片描述下载完成后,关闭vs2017,会自动安装,重启会有 Qt VS Tools的工具栏
在这里插入图片描述
方法2:手动下载
下载地址vsaddin
注意选择最新的安装,如我是选择2.7.1.
vs_qt 联合开发_第1张图片

SDK 更新

打开VS2017 新建一个项目,点击项目—属性—常规
如果Windowns SDK版本不是10的话,选择10.
vs_qt 联合开发_第2张图片
完成。

qt qmake 版本选择

Qt VS Tools > Options > Qt > Versions > Path
vs_qt 联合开发_第3张图片
选择qmake文件,文件如图所示。
vs_qt 联合开发_第4张图片
将Qt Designer 改为true
vs_qt 联合开发_第5张图片

qt 5 联合 vs2019

  1. 将vs2019的语言版本由 c++14改为c++17. 点击确定应用于当前项目,点击应用则适用于所有项目。
    vs_qt 联合开发_第6张图片
  2. ui打不开,左击,选择打开方式,选择添加并设为默认。
    vs_qt 联合开发_第7张图片
    在这里插入图片描述

问题

This application failed to start because it could not find or load the Qt platform plugin “windows” in

原因:release 下,未正确调用QT的动态链接库。如:同时装了QT和anaconda, 调用了anaconda的QT动态链接库。
解决方法:如果系统path中有QT和anaconda的环境变量,将QT移至anaconda之前;如果系统path无两者路径,则添加。

打印输出

问题:显示界面时,无法看到打印信息。
解决方法:工程->属性->配置属性->链接器->系统->子系统: 改为控制台

LNK2019 无法解析的外部符号

问题:未添加相关的库和依赖项;
解决方法:项目属性->Qt Project Settings->Qt Modules->添加勾选相应的库;
默认情况下勾选有库:core, gui, widgets.

vs编译出现未加载 wntdll.pdb

ui指针未初始化。

  • 用Qt Creator 创建的项目,默认ui为指针,Ui::MainWindow *ui;
  • 用vs 创建的项目,默认ui为对象,Ui::MainWindow ui;
  • 想要在vs中将ui改成指针,需修改两个地方:
  1. Ui::MainWindow *ui;
  2. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow);

LNK2001

在添加包含 Q_OBJECT的头文件时会出现此问题。原因是IDE没有自动为新建的类生成 moc_XXXX.cpp 文件导致的。
是因为项目中含有中文路径,IDE不会自动生成。将路径改成全英文,删除并重新添加该文件即可。

你可能感兴趣的:(笔记,教程,visual,studio,qt5)