VS QT 联合开发
配置
环境
推荐先安装好VS2017,
再安装好QT,注意选择对应的组件。
流程
方法1:点击vs2017的工具—扩展和更新—联机—搜索并下载qt
下载完成后,关闭vs2017,会自动安装,重启会有 Qt VS Tools的工具栏
方法2:手动下载
下载地址vsaddin
注意选择最新的安装,如我是选择2.7.1.
SDK 更新
打开VS2017 新建一个项目,点击项目—属性—常规
如果Windowns SDK版本不是10的话,选择10.
完成。
qt qmake 版本选择
Qt VS Tools > Options > Qt > Versions > Path
选择qmake文件,文件如图所示。
将Qt Designer 改为true
qt 5 联合 vs2019
- 将vs2019的语言版本由 c++14改为c++17. 点击确定应用于当前项目,点击应用则适用于所有项目。
- ui打不开,左击,选择打开方式,选择添加并设为默认。
问题
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改成指针,需修改两个地方:
Ui::MainWindow *ui;
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow);
LNK2001
在添加包含 Q_OBJECT的头文件时会出现此问题。原因是IDE没有自动为新建的类生成 moc_XXXX.cpp 文件导致的。
是因为项目中含有中文路径,IDE不会自动生成。将路径改成全英文,删除并重新添加该文件即可。