Qt鼠标事件使用总结
来源:互联网 发布:神经网络算法能做什么 编辑:程序博客网 时间:2024/06/05 10:29
鼠标事件
voidmousePressEvent(QMouseEvent*event); //单击
voidmouseReleaseEvent(QMouseEvent*event); //释放
voidmouseDoubleClickEvent(QMouseEvent*event); //双击
voidmouseMoveEvent(QMouseEvent*event); //移动
voidwheelEvent(QWheelEvent*event); //滑轮
鼠标事件使用的时候,加头文件
#include<QMouseEvent>
···
//鼠标按下事件
voidWidget::mousePressEvent(QMouseEvent*event)
{
//如果是鼠标左键按下 改变指针形状,并且存储当前指针位置与窗口位置的差值。
if(event->button()==Qt::LeftButton){
···
}
//如果是鼠标右键按下
elseif(event->button()==Qt::RightButton){
···
}
}
//鼠标移动事件 默认情况下,触发事件需要点击一下,才能触发。可设置为自动触发:setMouseTracking(true);
voidWidget::mouseMoveEvent(QMouseEvent*event)
{
//这里必须使用buttons()
if(event->buttons()&Qt::LeftButton){ //进行的按位与
···
}
}
//鼠标释放事件
voidWidget::mouseReleaseEvent(QMouseEvent*event)
{
···
}
//鼠标双击事件
voidWidget::mouseDoubleClickEvent(QMouseEvent*event)
{
//如果是鼠标左键按下
if(event->button()==Qt::LeftButton){
···
}
}
//滚轮事件
voidWidget::wheelEvent(QWheelEvent*event)
{
//当滚轮远离使用者时
if(event->delta()>0){
···
}else{//当滚轮向使用者方向旋转时
···
}
}
键盘事件
voidkeyPressEvent(QKeyEvent*event);
voidkeyReleaseEvent(QKeyEvent*event);
键盘事件使用时,加头文件
#include<QKeyEvent>
//键盘按下事件
voidWidget::keyPressEvent(QKeyEvent*event)
{
//是否按下Ctrl键 特殊按键
if(event->modifiers()==Qt::ControlModifier){
//是否按下M键 普通按键 类似
if(event->key()==Qt::Key_M)
···
}
elseQWidget::keyPressEvent(event); //保存默认事件
//如果是处理两个普通按键,得避免自动重复,释放中也要处理
if(event->key()==Qt::Key_Up){
//按键重复时不做处理
if(event->isAutoRepeat())return;
//标记向上方向键已经按下
keyUp=true;
}elseif(event->key()==Qt::Key_Left){
if(event->isAutoRepeat())return;
keyLeft=true;
}
}
//按键释放事件
voidWidget::keyReleaseEvent(QKeyEvent*event)
{
···
//如果是处理两个普通按键,得避免自动重复
if(event->key()==Qt::Key_Up){
if(event->isAutoRepeat())return;
···
}
elseif(event->key()==Qt::Key_Left){
if(event->isAutoRepeat())return;
···
}
}
- Qt鼠标事件使用总结
- qt鼠标事件总结
- Qt鼠标事件总结
- Qt鼠标事件总结
- QT鼠标事件总结
- qt鼠标事件总结
- qt鼠标事件总结
- qt鼠标事件总结
- qt鼠标事件使用
- QT鼠标事件的总结
- Qt鼠标事件QMouseEvent总结
- Qt鼠标事件QMouseEvent总结
- Qt鼠标事件QMouseEvent总结
- Qt事件总结(鼠标、键盘)
- Qt事件总结(鼠标、键盘)
- qt鼠标事件总结(一)
- QT鼠标事件总结(二)示例
- qt鼠标事件总结(转)
- 跳槽之后的一点感想
- Highway Networks
- effective c++读书笔记(一)
- HowTo如何制作一个文字冒险游戏-里篇(2)逐条解析脚本文件
- Spring Boot干货系列:(七)默认日志框架配置
- Qt鼠标事件使用总结
- Java核心编程之异常的捕获及处理
- Android studio lambda环境配置
- 解决修改CSS文件后网页显示不生效问题
- Ubuntu 16.04 TLS Samba配置
- CentOS 7 vsftpd 搭建 FTP
- 网络编程复习(三):NIO模式
- CentOS 6 网络设置
- Makefile