鼠标悬停、事件触发试用,及信号发送
来源:互联网 发布:c语言多线程编程 编辑:程序博客网 时间:2024/06/01 09:08
鼠标悬停、事件触发试用,及信号发送
——该笔记省略了很多实现代码,诸如图片加载等 仅作标题中的几个功能实现
实现功能:
试用Qlabel类,加载一幅图片后,重载QLabel类的成员函数mouseMoveEvent, 触发事件为显示
在ImageLabel鼠标位置的坐标值,还用到了信号槽
具体实现方法及代码:
1. ImageLabel.h
#ifndef IMAGELABEL_H#define IMAGELABEL_H#include <QLabel>#include <QDebug>#include <QMouseEvent>class ImageLabel : public QLabel{ Q_OBJECTpublic: explicit ImageLabel(QWidget *parent = 0); void mouseMoveEvent(QMouseEvent *ev); void enterEvent(QEvent *);signals: void customMouseMoveEvent(int x,int y);};#endif // IMAGELABEL_H
2. ImageLabel.cpp
#include "imagelabel.h"ImageLabel::ImageLabel(QWidget *parent) : QLabel(parent){}void ImageLabel::enterEvent(QEvent *) //随着鼠标移动会及时更新鼠标位置{ setMouseTracking(true);}void ImageLabel::mouseMoveEvent(QMouseEvent *ev){ customMouseMoveEvent(ev->x(),ev->y());}
槽函数
private slots : void setMousePosition(int,int);
槽函数实现:
void CLASSX::setMousePosition(int x, int y){ qDebug()<<x<<" "<<y;}
把信号和槽连接
ImageLabel* imageLabel = new ImageLabel();connect(imageLabel,SIGNAL(customMouseMoveEvent(int,int)) , this,SLOT(setMousePosition(int,int)));
描述:
在一个继承了QLabel类中重载了鼠标移动事件mouseMoveEvent(QMouseEvent*ev) ,使得鼠标每次移动都有以上信号槽,从customMouseMoveEvent(int,int)将信号发送到this类中的slots槽函数setMousePostion(int,int),槽函数对应的两个参数负责接收SIGNAL中的信号量里的两个参数改变的值
3.测试结果
随着鼠标在图片上移动出现了坐标的变化
- 鼠标悬停、事件触发试用,及信号发送
- 鼠标悬停、事件触发试用,及信号发送
- 鼠标悬停、事件触发试用,及信号发送
- 鼠标悬停,延后触发事件
- echars 自定义触发鼠标悬停事件
- GridView中鼠标悬停在某一列中触发事件
- 关于鼠标悬停,事件延时触发的解决
- 鼠标悬停事件
- 笔记-鼠标悬停事件
- css 鼠标悬停事件
- hover鼠标悬停事件
- unity 鼠标悬停事件
- selenium 鼠标悬停事件
- JavaScript:实现鼠标的悬停及移出事件
- js实现鼠标悬停一定时间后触发事件--淘宝例子
- 试用libevent的事件触发
- QTP鼠标触发事件
- 鼠标触发的事件
- HTTP 认证方式
- 原创android联系人列表
- iphone开发笔记——与c#中split一样的将字符串按特定字符分割成数组
- Ubuntu下搭建android NDK R7开发环境
- ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes的解决办法
- 鼠标悬停、事件触发试用,及信号发送
- SQL SERVER之居然连计算机管理员都无法访问
- 编驱动程序用什么开发工具?
- 23天学完mysql系统变量(九)
- [Accessibility] Missing contentDescription attribute on image
- 测试qemu上的beagleboard
- (莱昂氏unix源代码分析导读-12)系统初启(5)
- SQL语句实现SQL Server及ACCESS复制表结构或表结构及内容到新的表
- Python time模块