增加 Linux 下为 Qt Quick 应用程序隐藏鼠标.

Signed-off-by: rick.chan <cy@sina.com>
This commit is contained in:
rick.chan 2024-03-11 18:14:07 +08:00
parent e7976754d8
commit 4c63d6d021
4 changed files with 101 additions and 54 deletions

View File

@ -2,11 +2,11 @@
layout: post
title: "VirtualBox 常见问题汇总"
subtitle: ""
description: "记录 VirtualBox 在使用过程中遇到的一些常见问题,并提供解决方案 。"
excerpt: "记录 VirtualBox 在使用过程中遇到的一些常见问题,并提供解决方案 。"
date: 2024-03-11 10:04:00
description: "系统的论述 Qt Quick 中 QML 的使用,解决项目开发所要面对的实际问题。"
excerpt: "系统的论述 Qt Quick 中 QML 的使用,解决项目开发所要面对的实际问题。"
date: 2024-03-11 17:46:00
author: "Rick Chan"
tags: ["Applications", "VirtualBox"]
tags: ["Development", "VirtualBox"]
categories: ["Software"]
published: true
---

View File

@ -1,50 +1,61 @@
# QML 应用程序开发技术总结
---
layout: post
title: "QML 应用程序开发技术总结"
subtitle: ""
description: "记录 VirtualBox 在使用过程中遇到的一些常见问题,并提供解决方案。"
excerpt: "记录 VirtualBox 在使用过程中遇到的一些常见问题,并提供解决方案。"
date: 2024-03-11 18:02:00
author: "Rick Chan"
tags: ["Development", "Environment", "Qt", "QML"]
categories: ["Software"]
published: true
---
- [QML 应用程序开发技术总结](#qml-应用程序开发技术总结)
- [1. 基础部分](#1-基础部分)
- [1.1. 方法/属性名称的大小写](#11-方法属性名称的大小写)
- [1.2. 显示顺序](#12-显示顺序)
- [2. 全局属性](#2-全局属性)
- [3. 信号与槽](#3-信号与槽)
- [3.1. 信号与信号处理器](#31-信号与信号处理器)
- [3.2. 属性变化信号与属性变化信号处理器](#32-属性变化信号与属性变化信号处理器)
- [3.3. 附加属性与附加信号处理器](#33-附加属性与附加信号处理器)
- [3.4. Connections 建立信号与槽的连接](#34-connections-建立信号与槽的连接)
- [3.5. connect()方法](#35-connect方法)
- [3.6. 自定义信号](#36-自定义信号)
- [4. 界面加载完成信号](#4-界面加载完成信号)
- [5. 包别名](#5-包别名)
- [6. 添加图标](#6-添加图标)
- [6.1. 制作图标](#61-制作图标)
- [6.2. 添加图标到应用](#62-添加图标到应用)
- [7. 绘制圆形](#7-绘制圆形)
- [8. 常用组件](#8-常用组件)
- [8.1. QtQuick.Loader](#81-qtquickloader)
- [8.2. QtQuick.Controls.Button](#82-qtquickcontrolsbutton)
- [8.3. Dialog 对象](#83-dialog-对象)
- [8.3.1. QtQuick.Controls 中的 Dialog](#831-qtquickcontrols-中的-dialog)
- [8.3.2. QtQuick.Dialogs](#832-qtquickdialogs)
- [8.3.2.1. FileDialog](#8321-filedialog)
- [8.3.2.2. MessageDialog](#8322-messagedialog)
- [8.4. ComboBox](#84-combobox)
- [8.5. Grid](#85-grid)
- [8.6. ScrollView](#86-scrollview)
- [8.7. QtQuick.ListView](#87-qtquicklistview)
- [8.7. GridView](#87-gridview)
- [8.8. BusyIndicator](#88-busyindicator)
- [8.9. VirtualKeyboard](#89-virtualkeyboard)
- [9. 多文档开发](#9-多文档开发)
- [9.1. 多 QML 文件的管理](#91-多-qml-文件的管理)
- [9.2. 如何引用自定义 QML 文件](#92-如何引用自定义-qml-文件)
- [9.3. 使用另一 QML 文件中的元件或属性](#93-使用另一-qml-文件中的元件或属性)
- [9.4. 示例](#94-示例)
- [10. QML 与 C++ 交互](#10-qml-与-c-交互)
- [10.1. QML 访问 C++ 中声明的类型](#101-qml-访问-c-中声明的类型)
- [10.2. C++ 访问 QML 对象](#102-c-访问-qml-对象)
- [10.3. 通过信号槽传递自建类型](#103-通过信号槽传递自建类型)
- [10.4. QML 与 C++ 交互综合示例](#104-qml-与-c-交互综合示例)
- [11. Windows 下 QML 程序的打包发布](#11-windows-下-qml-程序的打包发布)
- [12. 外部参考资料](#12-外部参考资料)
- [1. 基础部分](#1-基础部分)
- [1.1. 方法/属性名称的大小写](#11-方法属性名称的大小写)
- [1.2. 显示顺序](#12-显示顺序)
- [2. 全局属性](#2-全局属性)
- [3. 信号与槽](#3-信号与槽)
- [3.1. 信号与信号处理器](#31-信号与信号处理器)
- [3.2. 属性变化信号与属性变化信号处理器](#32-属性变化信号与属性变化信号处理器)
- [3.3. 附加属性与附加信号处理器](#33-附加属性与附加信号处理器)
- [3.4. Connections 建立信号与槽的连接](#34-connections-建立信号与槽的连接)
- [3.5. connect()方法](#35-connect方法)
- [3.6. 自定义信号](#36-自定义信号)
- [4. 界面加载完成信号](#4-界面加载完成信号)
- [5. 包别名](#5-包别名)
- [6. 添加图标](#6-添加图标)
- [6.1. 制作图标](#61-制作图标)
- [6.2. 添加图标到应用](#62-添加图标到应用)
- [7. 绘制圆形](#7-绘制圆形)
- [8. 常用组件](#8-常用组件)
- [8.1. QtQuick.Loader](#81-qtquickloader)
- [8.2. QtQuick.Controls.Button](#82-qtquickcontrolsbutton)
- [8.3. Dialog 对象](#83-dialog-对象)
- [8.3.1. QtQuick.Controls 中的 Dialog](#831-qtquickcontrols-中的-dialog)
- [8.3.2. QtQuick.Dialogs](#832-qtquickdialogs)
- [8.3.2.1. FileDialog](#8321-filedialog)
- [8.3.2.2. MessageDialog](#8322-messagedialog)
- [8.4. ComboBox](#84-combobox)
- [8.5. Grid](#85-grid)
- [8.6. ScrollView](#86-scrollview)
- [8.7. QtQuick.ListView](#87-qtquicklistview)
- [8.7. GridView](#87-gridview)
- [8.8. BusyIndicator](#88-busyindicator)
- [8.9. VirtualKeyboard](#89-virtualkeyboard)
- [9. 多文档开发](#9-多文档开发)
- [9.1. 多 QML 文件的管理](#91-多-qml-文件的管理)
- [9.2. 如何引用自定义 QML 文件](#92-如何引用自定义-qml-文件)
- [9.3. 使用另一 QML 文件中的元件或属性](#93-使用另一-qml-文件中的元件或属性)
- [9.4. 示例](#94-示例)
- [10. QML 与 C++ 交互](#10-qml-与-c-交互)
- [10.1. QML 访问 C++ 中声明的类型](#101-qml-访问-c-中声明的类型)
- [10.2. C++ 访问 QML 对象](#102-c-访问-qml-对象)
- [10.3. 通过信号槽传递自建类型](#103-通过信号槽传递自建类型)
- [10.4. QML 与 C++ 交互综合示例](#104-qml-与-c-交互综合示例)
- [11. Linux 下为 Qt Quick 应用程序隐藏鼠标指针](#11-linux-下为-qt-quick-应用程序隐藏鼠标指针)
- [12. Windows 下 QML 程序的打包发布](#12-windows-下-qml-程序的打包发布)
- [13. 外部参考资料](#13-外部参考资料)
## 1. 基础部分
@ -1252,7 +1263,43 @@ Window {
}
```
## 11. Windows 下 QML 程序的打包发布
## 11. Linux 下为 Qt Quick 应用程序隐藏鼠标指针
QML 中可以使用 MouseArea 来隐藏鼠标指针,但是在程序刚启动时鼠标指针依然可见,只有鼠标动过或者点击过才会消失。因此需要 unclutter 程序来辅助unclutter 可以在系统空闲时自动隐藏鼠标指针。首先安装 unclutter
```bash
# Ubuntu
sudo apt install unclutter
```
并修改 /etc/default/unclutter
```bash
# /etc/default/unclutter - configuration file for unclutter
# Set this option to 'true' if you want to start unclutter
# automagically after X has been started for a user.
# Otherwise, set it to 'false'.
START_UNCLUTTER="true"
# Options passed to unclutter, see 'man unclutter' for details.
EXTRA_OPTS="-idle 0 -root"
```
确保 unclutter 会在系统启动时自动运行,并指定 -idle空闲时间 为 0——表示鼠标指针立刻隐藏。
在 Qt 项目的 QML 文件中添加:
```js
MouseArea {
z: 99
anchors.fill: parent
enabled: false
cursorShape: Qt.BlankCursor
}
```
## 12. Windows 下 QML 程序的打包发布
Qt 提供了导出 Qt 环境变量的命令行脚本比如“Qt 5.15.2 (MinGW 8.1.0 64-bit)”,运行该脚本可进入带有 Qt 环境变量的命令行界面,之后可通过如下命令打包程序(编译生成的可执行程序需要拷贝到\<Package Output Path\>
@ -1263,7 +1310,7 @@ windeployqt <Exe File> [--qmldir <Project QML File Path>]
Qt 自带的打包程序会添加额外的库,如果想进一步减小体积,可手动筛减。
## 12. 外部参考资料
## 13. 外部参考资料
1. [深入了解JS中的整数](https://www.jianshu.com/p/1ba45c3894ab)
2. [QML 中的信号与槽](https://blog.csdn.net/Love_XiaoQinEr/article/details/123746983)

View File

@ -6,7 +6,7 @@ description: "Linus 内核 SPI 子系统介绍。"
excerpt: "本文重点在于理清与 SPI 有关的相关概念和 SPI 子系统的初始化的流程。"
date: 2022-09-06 09:32:00
author: "Rick Chan"
tags: ["Kernel", "SPI"]
tags: ["Development", "System", "Linux", "Kernel", "Modules", "SPI"]
categories: ["Software"]
published: true
---

View File

@ -7,7 +7,7 @@ excerpt: "Linux Xfce4 桌面系统深度定制功能说明。"
date: 2024-03-11 17:20:00
author: "Rick Chan"
tags: ["System", "Linux", "Modules", "Desktop", "Xfce4"]
categories: ["System"]
categories: ["Software"]
published: true
---