增加 Linux 下为 Qt Quick 应用程序隐藏鼠标.
Signed-off-by: rick.chan <cy@sina.com>
This commit is contained in:
parent
e7976754d8
commit
4c63d6d021
@ -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
|
||||
---
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
---
|
||||
|
@ -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
|
||||
---
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user