Qt 6.2.1 + Visual Studio 2022 环境常见问题汇总

本文总结了Qt 6.2.1与Visual Studio 2022在集成开发中遇到的问题,包括编译报错、中文编码设置、项目兼容性、UI文件处理以及UI文件打开闪退等。解决方案包括修改C++标准设置、安装QT5兼容模块、手动创建和编辑头文件及源文件,以及调整UI文件的打开方式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试环境

Win11 + AMD R9 + Visual Studio 2022 + QT 6.2.1


Q1:Visual Studio 环境生成报错

默认设置生成WidgetAPP后VS会报一大堆错误,进行以下设置后可以正常生成(不能消除所有错误)

  • 解决方案属性 → 常规 → C++标准 改为 "ISO C++ 17 标准"

  • 解决方案属性 → 命令行 → 其他选项添加 /Zc:__cplusplus


Q2:不能通过Codec来设置中文编码

  • QT5中删除了以下代码

  QTextCodec::setCodecForTr(...)
  QTextCodec::setCodecForCStrings(...)
  QTextCodec::setCodecForLocale(...)
  • QT6中直接移除了整个了QTextcodec库

  • 可以通过安装QT5兼容模块,然后在QTCreator中配置pro文件来获得该库

 greaterThan(QT_MAJOR_VERSION, 5):  QT += core5compat
  • QT5及其以后版本,文件将默认使用UTF-8编码

  • Visual Studio无法配置兼容模块,无法使用上述代码,也不能设置UTF-8

  • 在C++11以后的代码中,字符串可以用以下形式来声明为u8

 QString s= u8"中文测试";

Q3:Visual Studio 与 Qt Creator 生成的项目相互兼容问题

QtCreator生成项目没有sln文件

在Visual Studio中选择扩展 → QT Tools → Launch Qt Project File(.pro) 会自动生成sln文件,打开后根据提示解决兼容性问题 报错问题参照上文Q1

Visual Studio生成项目没有pro文件

右击解决方案 → Qt → Create Basic.pro File 根据提示生成pro文件,可以进行相关配置,也可以在Creator中打开


Q4:Visual Studio中生成的ui文件不生成头文件与源文件

最新解决方案:右键Add时选择 Add Qt Class

QTCreator中新建ui窗体会生成.ui文件并附带头文件.h和源文件.cpp,VS中新建则只会生成ui文件,并不会附带头文件和源文件

  • 在Visual Studio中必须右键ui文件→编译才会生成ui头文件,编译生成的头文件存储在 ./x64/Debug/uic中

    • 实测编译后不需要在设置中添加包含目录就可以直接include

  • 项目内对应的头文件与源文件需要自己创建

  • 头文件与源文件命名应与ui文件相同

  • 头文件需要包含以下部分

    • include 窗体基础类型<QXXXClass> 和对应的ui头文件"ui_xxx.h"

      • 新建项目时默认的主窗体的头文件已经预编译生成,具有自定义的名称

      • 在QTCreator中新建的项目文件不会include生成的ui头文件,声明在项目内就完成(命名空间的宏定义声明就包含在项目中的头文件里)

      • 自定义的ui文件编译的头文件中Class的名称默认为Ui_className,namespace中定义的Class名称默认为上述的className【className为ui文件中窗体对象的名字

      • 指针声明与后续定义中的className为此处的名称应为对应的ui头文件中的className

    • 类的基础声明

      • 声明与当前文件名同名的类

      • 继承基础类型,并声明Q_OBJECT宏

    • 其他基础声明

      • 构造函数与析构函数

      • 声明与ui挂钩的指针 Ui::className *ui;

  • 源文件需要包含以下部分

    • include 上面声明的头文件

    • 定义构造函数

    • 执行窗口基类构造函数

    • 初始化ui指针:堆分配空间给ui(调用ui::className() 构造函数

    • 函数体中调用 ui->setupUi(this) 来将组件挂载到ui指针指向的类里

    • 定义析构函数:delete ui指针


Q5:Visual Studio 中打开ui文件闪退

解决方式

右键 ui 文件 → 打开方式 → 添加 → 找到QT目录下 /版本号/msvc_xxxx/bin/designer.exe 添加到 程序 → 参数留空,名字自己起 → 确定,选择新建的打开方式为默认

问题原因

默认的打开方式有点问题

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值