增加资料。

Signed-off-by: rick.chan <cy@haoan119.com>
This commit is contained in:
rick.chan 2024-07-26 14:38:14 +08:00
parent 3f337ccd94
commit a9c615c6b5
3 changed files with 110 additions and 4 deletions

View File

@ -209,6 +209,9 @@ title: 资源网站
- [Music Player GO](https://github.com/enricocid/Music-Player-GO)
- [TimberX](https://github.com/naman14/TimberX)
- [RetroMusicPlayer](https://github.com/RetroMusicPlayer/RetroMusicPlayer)
- [TinyWall](https://github.com/pylorak/TinyWall): A free, lightweight and non-intrusive firewall.
- [Free Firewall](https://www.evorim.com/zh/free-firewall): Free firewall is a full-featured professional firewall that protects against the threats of the Internet.
- [MSYS2](https://www.msys2.org/)
## 14. BT 资源

View File

@ -58,8 +58,13 @@ published: true
- [9.3. 通过信号槽传递自建类型](#93-通过信号槽传递自建类型)
- [9.4. QML 与 C++ 交互综合示例](#94-qml-与-c-交互综合示例)
- [10. Linux 下为 Qt Quick 应用程序隐藏鼠标指针](#10-linux-下为-qt-quick-应用程序隐藏鼠标指针)
- [11. Windows 下 QML 程序的打包发布](#11-windows-下-qml-程序的打包发布)
- [12. 外部参考资料](#12-外部参考资料)
- [11. 打包发布与部署](#11-打包发布与部署)
- [11.1. Windows 下 QML 程序的打包发布](#111-windows-下-qml-程序的打包发布)
- [11.2. 运行环境设置](#112-运行环境设置)
- [12. QML 与 OpenGL](#12-qml-与-opengl)
- [12.1. 在不支持 OpenGL 的机器上运行 QML 程序](#121-在不支持-opengl-的机器上运行-qml-程序)
- [12.2. 切换 OpenGL 模式](#122-切换-opengl-模式)
- [13. 外部参考资料](#13-外部参考资料)
## 1. 基础部分
@ -1441,7 +1446,9 @@ MouseArea {
}
```
## 11. Windows 下 QML 程序的打包发布
## 11. 打包发布与部署
### 11.1. Windows 下 QML 程序的打包发布
Qt 提供了导出 Qt 环境变量的命令行脚本比如“Qt 5.15.2 (MinGW 8.1.0 64-bit)”,运行该脚本可进入带有 Qt 环境变量的命令行界面,之后可通过如下命令打包程序(编译生成的可执行程序需要拷贝到\<Package Output Path\>
@ -1452,7 +1459,86 @@ windeployqt <Exe File> [--qmldir <Project QML File Path>]
Qt 自带的打包程序会添加额外的库,如果想进一步减小体积,可手动筛减。
## 12. 外部参考资料
### 11.2. 运行环境设置
Qt 程序启动时会检查系统环境变量,传入参数等。在部署 Qt 程序时,需要正确设置环境变量以及启动参数。其中环境变量设置在 Linux 中可修改 /etc/environment 或者 ~/.bashrc甚至是 systemd 服务文件(.service 文件)中配置。
Windows 下可在“系统->高级系统设置->环境变量”中进行设置。
也可以在 Qt 程序源代码最开始的地方使用 qputenv() 函数进行设置,比如:
```cpp
int main(int argc, char *argv[])
{
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
// ...
QGuiApplication app(argc, argv);
// ...
}
```
## 12. QML 与 OpenGL
### 12.1. 在不支持 OpenGL 的机器上运行 QML 程序
Qt QML 程序默认使用 OpenGL 进行渲染,但某些系统由于没有 GPU 或者其他原因,导致不支持 OpenGL或者 OpenGL 版本无法满足要求,此时可指定 Qt 程序使用软件渲染方式(使用 CPU这可以通过设置环境变量来实现
```bash
QT_QUICK_BACKEND=software
# 或 legacy QMLSCENE_DEVICE
QMLSCENE_DEVICE=softwarecontext
```
QT_QUICK_BACKEND 可选值为:
- rhi
- software
- openvg
也可在 Qt 程序源码中使用 [static] void QQuickWindow::setSceneGraphBackend(QSGRendererInterface::GraphicsApi api) 函数实现:
```cpp
int main(int argc, char *argv[])
{
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);
// ...
QGuiApplication app(argc, argv);
QQuickView view;
// ...
}
```
QSGRendererInterface::GraphicsApi 的值可以为:
- QSGRendererInterface::Unknown : An unknown graphics API is in use
- QSGRendererInterface::Software : The Qt Quick 2D Renderer is in use
- QSGRendererInterface::OpenGL : OpenGL ES 2.0 or higher
- QSGRendererInterface::Direct3D12 : Direct3D 12
- QSGRendererInterface::OpenVG : OpenVG via EGL
- QSGRendererInterface::OpenGLRhi : OpenGL ES 2.0 or higher via a graphics abstraction layer. This value was introduced in Qt 5.14.
- QSGRendererInterface::Direct3D11Rhi : Direct3D 11 via a graphics abstraction layer. This value was introduced in Qt 5.14.
- QSGRendererInterface::VulkanRhi : Vulkan 1.0 via a graphics abstraction layer. This value was introduced in Qt 5.14.
- QSGRendererInterface::MetalRhi : Metal via a graphics abstraction layer. This value was introduced in Qt 5.14.
- QSGRendererInterface::NullRhi : Null (no output) via a graphics abstraction layer. This value was introduced in Qt 5.14.
***注意Qt 的 VideoOutput 不能使用软件渲染即 Qt Quick Software Adaptation。***
### 12.2. 切换 OpenGL 模式
Qt 可以选择使用 Desktop 版本的 OpenGL 还是其他,设置方式同样是通过设置环境变量来实现:
```bash
QT_OPENGL=desktop
```
QT_OPENGL 可选参数为:
- desktop使用 Desktop 版本的 OpenGL
- es2嵌入式版本的 OpenGLOpenGL ES
- angle使用 angle directX接口
- softwareWindows 下依赖 opengl32sw.dll
## 13. 外部参考资料
1. [深入了解JS中的整数](https://www.jianshu.com/p/1ba45c3894ab)
2. [QML 中的信号与槽](https://blog.csdn.net/Love_XiaoQinEr/article/details/123746983)

View File

@ -0,0 +1,17 @@
# MSYS2 安装和使用
MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software.
下载地址:[MSYS2 官网](https://www.msys2.org/)
安装完成后,运行 MSYS2 MSYS。然后输入以下命令更新软件包数据库和核心包
```bash
pacman -Syu
```
安装开发工具:
```bash
pacman -S gcc make vim git
```