Qt学习之路(7):事件初了解|重写鼠标点击事件
来源:互联网 发布:车辆数据采集系统 编辑:程序博客网 时间:2024/06/15 23:00
事件驱动是界面的一个基本机制.当然Qt为我们提供了另外一种选择,信号槽.总的来说,当我们使用Qt的组件(比如QPushButton)的时候,我们关心信号,因为这个时候信号由具体的组件发出,当我们自己定义组件的时候,我们就关心事件,因为我们需要通过重写事件的处理函数来设置我们自己定义的组件的功能.比如下面的代码就派生了一个QLabel的子类,显示鼠标移动,点击,抬起时候的坐标.
#ifndef EVENTLABEL#define EVENTLABEL#include "QLabel"class EventLabel:public QLabel{ Q_OBJECT protected: /**********重写事件响应的虚函数****************/ void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event);};#endif // EVENTLABEL
#include "eventlabel.h"#include "QMouseEvent"void EventLabel::mouseMoveEvent(QMouseEvent *event){ this->setText(QString("<center><h1>Move: (%1, %2)</h1></center>") .arg (QString::number(event->x()), QString::number(event->y())));}void EventLabel::mousePressEvent(QMouseEvent *event) { this->setText(QString("<center><h1>Press: (%1, %2)</h1></center>") .arg (QString::number(event->x()), QString::number(event->y())));}void EventLabel::mouseReleaseEvent(QMouseEvent *event){ QString msg; msg.sprintf("<center><h1>Release: (%d, %d)</h1></center>", event->x(), event->y()); this->setText(msg);}
===========================================
我们还可以将鼠标点击事件的处理写入主窗口.
void MainWindow:: mousePressEvent(QMouseEvent *event){text->setText(QString("<center><h1> press(%1,%2) </h1></center>").arg (QString::number(event->x()),QString::number(event->y())));}
当然,由于文本编辑框,菜单等控件,鼠标在主窗口上的很多地方是无法点击到的.
0 0
- Qt学习之路(7):事件初了解|重写鼠标点击事件
- Qt学习之路之鼠标事件
- Qt学习之路之鼠标事件
- QT鼠标点击响应事件
- Qt 处理鼠标点击事件
- ECharts重写鼠标右键点击事件
- PyQt5重写QComboBox的鼠标点击事件
- JS之鼠标点击事件
- QT中模拟鼠标点击事件
- 自学QT之鼠标事件
- java基础学习之事件监听--鼠标点击
- Qt学习之路——— Qt键盘、鼠标事件的处理
- 重写鼠标事件
- tablayout重写点击事件
- QT学习之路————重写键盘事件
- QT重写控件函数并添加鼠标单击事件
- 模拟鼠标点击事件
- 关于鼠标点击事件
- git 两个用户实现在服务器上的交互
- OAuth授权协议(第三方不用密码获得授权): 密码不安全+不好控制
- 南邮编程在线编程题十四:三角形面积
- C++ vector容器的4种遍历方式
- SQL语句 SELECT后面的表别名-点-星号(alias.*)
- Qt学习之路(7):事件初了解|重写鼠标点击事件
- 进程僵死,terminate called without an active exception,信号11
- 读书笔记 --《数学之美》_隐马尔可夫模型
- getline函数的使用
- iOS 百度地图
- dct变换
- 使用 RPi.GPIO 模块的输入(Input)功能
- Centos开发环境搭建
- alpha透明