VSCode 配置 C++ Qt 开发环境
1.安装开发包
1 | sudo pacman -S qt6-base |
如果要安装其它版本的,比如qt5
,则是qt5-base
。
对于WSL
下,是只能连接到x11
服务的,比较 Windows 也没有wayland
会话。所以还需要安装xcb
支持库:
1 | sudo pacman -S qt6-xcb-private-headers |
需要与安装的qt
版本对应,因为我安装的是qt6-base
,我这里自然安装的就是qt6
对应的xcb
支持库。
安装好后需要配置环境变量,把下面这行内容添加到.bashrc
或者.zshrc
中(取决于自己用的shell
):
1 | export QT_QPA_PLATFORM=xcb |
进行这步配置主要是为了避免运行qt
程序时,出现下面的问题:
1 | qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in "" |
如果是在 Linux 发行版上的话(能支持wayland
会话的),可能会出现这样的问题:
1 | QApplication: invalid style override 'kvantum' passed, ignoring it. |
这是 Qt 程序的ui
样式,提示kvantum
样式不可用,可用的有Breeze
,Windows
,Fusion
这三种。所以还需要设置环境变量,把下面这行内容添加到.bashrc
或者.zshrc
中(取决于自己用的shell
):
1 | export QT_STYLE_OVERRIDE=Fusion |
2.安装字体
默认情况下,中文字体会安装在以下路径之一:
/usr/share/fonts/noto-cjk/
:用于 Noto CJK 字体(推荐)。/usr/share/fonts/wenquanyi/
:用于 文泉驿 字体。/usr/share/fonts/TTF/
或/usr/share/fonts/truetype/
:用于 TTF/OTF 格式的字体文件。
先查看下系统是否有中文字体,使用下面的指令:
1 | fc-list :lang=zh |
如果有输出的话,后面操作就不用管,否则就需要额外安装字体。
在我的系统中(Arch-WSL2),/usr/share/fonts/
目录下只显示了以下内容,说明没有中文字体:
100dpi 和 75dpi:
这些是 X11 系统中的点阵字体(bitmap fonts),通常用于较低分辨率的显示器或作为一些旧式程序的备用字体。100dpi
表示每英寸 100 点的字体。75dpi
表示每英寸 75 点的字体。
这些字体一般用于非常老旧的 X11 应用程序,现代应用通常不需要这些字体。
encodings:
包含字体编码文件,用于定义如何将字符代码映射到字体中的字形。它主要与点阵字体或老式字体相关。util:
一些字体工具或辅助文件的目录,通常与字体管理或配置有关。
- 安装 Noto CJK 字体(推荐)
这是 Google 提供的现代中文字体,适用于大多数应用场景:
1 | sudo pacman -S noto-fonts-cjk |
- 安装其他中文字体
- 文泉驿字体:
1
sudo pacman -S wqy-zenhei wqy-microhei
- 思源宋体(Noto Serif CJK):
1
sudo pacman -S noto-fonts-emoji noto-fonts-cjk noto-fonts
安装一种即可,安装好后,需要重启系统(我这里只需要重启 Arch-WSL2 子系统)。
3.项目构建
一个简单的qt
开发模板:
1 | cmake_minimum_required(VERSI0N 3.12) |
建议设置clang
和clang++
作为编译器。我在 Arch-WSL2 下使用gcc
和g++
会出现问题。还有就是设置编译器这部分,一定要放在cmake_minimum_required
下面,其它的上面。因为编译器的选择会影响后续变量、库、目标等配置。CMake 初始化后再更改编译器可能会导致配置问题。
对于qt
模板,可以参考我的仓库中的模板配置:cpp_template。
- Title: VSCode 配置 C++ Qt 开发环境
- Author: loskyertt
- Created at : 2024-12-11 19:04:07
- Updated at : 2024-12-12 04:50:52
- Link: https://redefine.ohevan.com/2024/12/11/Qt和VScode配置/
- License: This work is licensed under CC BY-NC-SA 4.0.