技术标签: qml 用户输入 鼠标事件 qml响应输入 # QML笔记 触摸事件
Qt Quick模块支持最常见的用户输入类型,包括鼠标和触摸事件、文本输入和按键事件。其他模块也能支持其他类型的用户输入,例如 Qt Sensors 模块支持QML应用程序中的抖动手势,但是要有对应的硬件才能实现这样的功能。同时对于有关audio-visual 视听输入的信息,请参阅 Qt Multimedia 文档。
QML应用程序可以处理鼠标和触摸事件。例如,你可以通过给图像添加一个TapHandler来创建按钮,或者给一个内部有文本对象的矩形添加一个TapHandler来创建按钮。TapHandler响应任何类型的指向设备上的点击或点击。
就比如下面这里点击就延长这个宽度
import QtQuick 2.12
Item {
id: root
width: 320
height: 480
Rectangle {
color: "#272822"
width: 320
height: 480
}
Rectangle {
id: rectangle
x: 40
y: 20
width: 120
height: 120
color: "red"
TapHandler {
onTapped: rectangle.width += 10
}
}
}
有关更高级的用例,如拖动、缩放和缩放手势,请参阅DragHandler和PinchHandler类型的文档。
注意::有些类型有自己内置的输入处理。例如,Flickable响应鼠标拖动和鼠标滚轮滚动。它通过合成的鼠标事件来处理触摸拖动和点击,这些鼠标事件是在触摸事件没有被处理时创建的。
无论是设备上的按钮、小键盘还是键盘上的按键,都可以使用 Keys attached 属性来处理。这个附加属性在所有 Item 派生类型上都可用,并与 Item::focus 属性一起确定哪个类型接收到 key 事件。对于简单的键处理,可以将单个元素的焦点设置为true,并在那里进行所有的键处理。
就比如下面这个使用键盘 左右、上下键移动红色的框框。
import QtQuick 2.3
Item {
id: root
width: 320
height: 480
Rectangle {
color: "green"
width: 320
height: 480
}
Rectangle {
id: rectangle
x: 40
y: 20
width: 120
height: 120
color: "red"
focus: true
Keys.onUpPressed: rectangle.y -= 10
Keys.onDownPressed: rectangle.y += 10
Keys.onLeftPressed: rectangle.x += 10
Keys.onRightPressed: rectangle.x -= 10
}
}
对于文本输入,我们有几种QML类型可供选择。TextInput提供了一个无样式的单行可编辑文本,而TextField更适合应用程序中的表单字段。TextEdit可以处理多行可编辑文本,但TextArea是一个更好的选择,因为它增加了样式。
下面的代码片段演示了如何在应用程序中使用这些类型:
import QtQuick 2.12
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
ApplicationWindow {
width: 300
height: 200
visible: true
ColumnLayout {
anchors.fill: parent
TextField {
id: singleline
text: "Initial Text"
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
Layout.margins: 5
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
border.color: singleline.focus ? "#21be2b" : "lightgray"
color: singleline.focus ? "lightgray" : "transparent"
}
}
TextArea {
id: multiline
placeholderText: "Initial text\n...\n...\n"
Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
Layout.fillHeight: true
Layout.margins: 5
background: Rectangle {
implicitWidth: 200
implicitHeight: 100
border.color: multiline.focus ? "#21be2b" : "lightgray"
color: multiline.focus ? "lightgray" : "transparent"
}
}
}
}
文章浏览阅读347次。2019.06.06从职业生涯的第二家公司离职,因为第二家公司是行业内的世界第一,世界500强,学到的东西很多,公司氛围,同事之间的关系也比较简单,收获满满。当时离职被卡满满30天,最后一天还帮忙调试程序,然后下一个工作日就直接新的公司入职了。第三家公司算是中型公司,全球职工千人+。入职第三天开始做项目,节奏有点赶,第一个周末就加班调试。因为没有做好入职准备,刚开始还是比较被动的。重要的事还提前做...
文章浏览阅读776次,点赞2次,收藏2次。https://www.mihaoyun.comhttps://www.jb51.net/article/211773.htm
文章浏览阅读892次,点赞2次,收藏9次。开始使用IDEA创建java工程,两种方法 直接创建java工程 然后一路next,只需要修改工程名和路径即可 先新创建一个空项目,一路next后再选择Moudle创建java模块,如图 然后进行项目结构的配置,将图中两个位置进行设置 然后按照正常步骤即可 常使用的快捷键 快速复制一行ctrl+d 快速删除一行ctrl+y java的基础语法1.注释 ..._用idea讲java
文章浏览阅读8.4k次。el-button 的显示与隐藏iconfont 的引用_el-button禁用
文章浏览阅读953次。方法1 将pair存入vector排序在map中存储 <key, value> 键值对的数据结构是pair,简单直接的想法是将map中的pair复制一份存储到vector中,并重写compare函数根据second元素排序,就可以使用sort对该vector进行排序。代码实现#include <iostream>#include <algorithm>#include <string>#include <map>#include &l_std::map 按value排序
文章浏览阅读1.3w次,点赞7次,收藏18次。两个元素位置互换change_list = [6, 8]print(change_list)# 交换列表,以下两个均可# change_list[0], change_list[1] = change_list[1], change_list[0]change_list[1], change_list[0] = change_list[0], change_list[1] pri..._change_list()
文章浏览阅读2.9k次。Linux.安装node.js和npm的14.15.1版本的解决方案linux,安装node 和npm1,首先登陆linux 创建一个目录2,下载node安装包,这里我们下载的是14.15.1版本3,下载好之后,进行解压4,建立软连接5,可以查看npm版本了6,如果自己之前下载过,而且不好使的话可以把之前下载的删掉如果第一次操作的话到第5步就可以结束了,如果不是第一次操作的话就要看看第6步linux,安装node 和npm我也是刚刚在学linux,想着把Vue部署到linux上,然后遇到了安装的问题,所_node14.15.1
文章浏览阅读1.7k次,点赞6次,收藏5次。文章目录1. 请描述 HTML、CSS、DOM、JavaScript分别表示的含义① HTML② CSS③ DOM④ JavaScript2. 请列举出 HTML 常用的标记。(至少10个)1. 请描述 HTML、CSS、DOM、JavaScript分别表示的含义① HTMLHTML,英文全称 Hyper Text Markup Language,翻译过来就是**①超文本②标记语言**,这是一种用于创建网页的标准标记语言。超文本:超文本就是用超链接的方法,将各种不同空间的文字信息组织在一起的
文章浏览阅读2.3k次。用DW敲出一个简易的计算器学JS之前感觉有点难,然后学了JS感觉很简单只要有了思路就可以敲出来。下面是敲完之后的样子_dw做加减乘除取余代码
文章浏览阅读5.5k次,点赞2次,收藏2次。ctl文件主要使用场景是sqlload加载外部的csv文件时,用来控制格式,也就是说,ctl中的字段要完全跟csv文件中的对应起来. 这个时候会有个问题,当要入库的数据库中的字段和csv不一致的时候,这时候就要在ctl文件中使用一个FILTER的属性来设置让其不检查这个字段. 当ctl文件中有中文的时候,这个时候最好使用GBK的编码格式来避免 sqlload在加载这个csv文件的_ctl控制文件
文章浏览阅读1.5w次,点赞5次,收藏69次。关机命令:1、halt 立刻关机2、poweroff 立刻关机3、shutdown -h now 立刻关机(root用户使用)4、shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启5、init0 停机或者关机重启命令:1、reboot 立即重启2、shutdown -r now 立刻重启(root用户使用)3、shutdown -r 10 过10分钟自动重启(root用户使用)4、init6 重启....._服务器关机命令
文章浏览阅读1.6w次,点赞7次,收藏47次。2.2弹出资源管理器,如下图所示。total:总物理内存大小。free:剩余可用内存。used:内存使用量。2.1打开终端,输入。_ubuntu查看内存占用情况