Qt Quick事件处理
来源:互联网 发布:海南医学院怎么样知乎 编辑:程序博客网 时间:2024/06/08 19:18
- MouseArea 鼠标句柄交互
- 1MouseEvent鼠标事件
- 2WheelEvent滚轮事件
- 3DragEvent拖放事件
- 键盘事件KeyEvent
- 1导航键KeyNavigation
- 定时器Timer
自己博客中的代码可以在https://github.com/xixihaha331/QT_Repository中获取
事件处理
MouseArea 鼠标句柄交互
MouseEvent鼠标事件
WheelEvent滚动事件
DrangEvent拖放事件
FocusScope 键盘焦点句柄
focus键盘事件
Flickable 提供一种浏览整张图片的一部分的效果,具体看例子
Flipable 提供一个平面,可以进行翻转看他的前面或后面,具体看例子
Timer定时器
1.MouseArea 鼠标句柄交互
属性:
enable;是否开启鼠标事件处理,默认为开启
pressed判断用户是否按住了鼠标按钮
onClicked 单击鼠标触发事件
onDoubleClicked双击鼠标触发事件
onPressed按下鼠标触发事件
onReleased松开鼠标触发事件
onPressaAndHold
onWheel处理滚轮事件
1.1MouseEvent鼠标事件
属性:
accepted属性为true来防止鼠标事件传播到下层项目
有一个mouse参数,对其进行操作判断
button/buttons获取按下的按键
button可取的值为:
Qt.LeftButton左键
Qt.RightButton右键
Qt.MiddleButton中键
modifiers获取按下的键盘修饰符
modifiers可取的值为:
Qt.NoModifier没有修饰键按下
Qt.ShiftModifier shift键按下
Qt.ControlModifier ctrl键按下
Qt.AltModifier alt键按下
Qt.MetaModifier meta键按下
Qt.KeypadModifier 一个小键盘按钮被按下
使用时需要将modifiers与这些特殊的按键进行按位与来判断按键
例如:mouse.modifiers & Qt.ShiftModifier
1.2WheelEvent滚轮事件
有一个wheel参数,对其进行操作判断
属性:
angleDelta来获取滚轮滚动的距离,x和y坐标分别保存水平,垂直方向的增量.
例如:wheel.angleDelta.y
1.3DragEvent拖放事件
属性:
drag
import QtQuick 2.8import QtQuick.Window 2.2 Window{ width: 800 height: 200 Rectangle{ id: rectangle1 width:100 height: 100 color: "green" border.color: "green" opacity: (800-rectangle1.x)/800 MouseArea{ anchors.fill: rectangle1 drag.target: rectangle1 drag.axis: Drag.XAxis onClicked: { if(mouse.button == Qt.LeftButton){ rectangle1.color = 'yellow' }else if(mouse.button == Qt.RightButton){ rectangle1.color = 'red' } } onDoubleClicked: { if((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)){ rectangle1.color = 'green' rectangle1.border.color = 'black' } } onWheel: { //anchors.fill: rectangle1 if(wheel.modifiers & Qt.ControlModifier){ if(wheel.angleDelta.y > 0){ text.font.pointSize += 1 }else if(wheel.angleDelta.y < 0){ text.font.pointSize -= 1 } } } } } Text{ id: text anchors.centerIn: rectangle1 text: "QT" }}
2.键盘事件KeyEvent
属性:
focus设置为true,这个项目便会获得焦点
Keys属性来进行按键处理
Keys附加属性onPressed;onReleased提供了基本的处理
event.key获取了按下的按键
accepted判断是否接收按键
isAutoRepeat判断是否是自动重复按键
2.1导航键KeyNavigation
用来实现使用方向键或者Tab键进行项目导航
属性:
backtab(Shift+Tab);down;left;priority;right;tab;up
3.定时器Timer
属性:
interval设置时间间隔
repeat设置是否重复触发
running: true开启定时器
当定时器触发时,会执行onTriggered()信号处理器
Timer提供一系列函数start();stop();restart()
例子:倒计时
import QtQuick 2.8import QtQuick.Window 2.2import QtQuick.Controls 1.2Window{ width: 200 height: 200 QtObject { id:attr; property int counter; Component.onCompleted: { attr.counter = 10; } } Text { id: text anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: button.top text: qsTr("倒计时") color: "blue" font.pointSize: 20 } Timer{ id: timer interval: 1000 repeat: true //running: true triggeredOnStart: true; onTriggered: { text.text = attr.counter attr.counter-- if(attr.counter < 0){ timer.stop() text.text = 'stop' } } } Button{ id: button anchors.centerIn: parent text:qsTr("start") onClicked: { attr.counter = 10 timer.start(); } }}
- Qt Quick事件处理
- Qt Quick 事件处理之信号与槽
- Qt Quick事件处理之鼠标、键盘、定时器
- Qt Quick 事件处理之捏拉缩放与旋转
- Qt Quick 事件处理之信号与槽
- Qt Quick事件处理之鼠标、键盘、定时器
- Qt Quick 事件处理之信号与槽
- Qt Quick 事件处理之信号与槽
- Qt Quick 图像处理实例之美图秀秀
- qt中的事件处理
- QT 事件处理
- Qt事件处理机制
- QT事件处理
- Qt事件处理机制
- Qt事件处理机制
- qt 双击事件处理
- Qt事件处理
- qt事件处理
- Linux下访问网络文件系统
- Paxos算法原理与推导
- 散布矩阵(Scatter Matrix)
- QT编译,一直循环报错:file“xxxxx”has modification times xxxxx s in the future..
- 求任意多边形面积-有向面积
- Qt Quick事件处理
- ldap 网络账号
- 牛客网-好未来秋招
- linux设置快捷键
- socket编程 ---- python篇
- 1008
- INSERT INTO 中的一种子查询
- 文章标题
- java 线程安全