- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
QT5开发及实例(第5版)
第6章Qt5事件处理及实例
——鼠标事件
鼠标事件
【例】(简单)(CH601)本例将介绍如何获得和处理鼠标事件。程序最终演示效果如图。
鼠标事件
(1)在头文件mouseevent.h中,重定义了QWidget类的三个鼠标事件方法,即mouseMoveEvent、mousePressEvent和mouseReleaseEvent。当有鼠标事件发生时,就会响应相应的函数,其具体内容如下:
#includeQMainWindow
#includeQLabel
#includeQStatusBar
#includeQMouseEvent
classMouseEvent:publicQMainWindow
{
Q_OBJECT
public:
MouseEvent(QWidget*parent=0);
~MouseEvent();
protected:
voidmousePressEvent(QMouseEvent*e);
voidmouseMoveEvent(QMouseEvent*e);
voidmouseReleaseEvent(QMouseEvent*e);
voidmouseDoubleClickEvent(QMouseEvent*e);
private:
QLabel*statusLabel;
QLabel*MousePosLabel;
};
鼠标事件
(2)源文件mouseevent.cpp的具体代码如下:
#includemouseevent.h
MouseEvent::MouseEvent(QWidget*parent)
:QMainWindow(parent)
{
setWindowTitle(tr(鼠标事件)); //设置窗体的标题
statusLabel=newQLabel; //(a)
statusLabel-setText(tr(当前位置:));
statusLabel-setFixedWidth(100);
MousePosLabel=newQLabel; //(b)
MousePosLabel-setText(tr());
MousePosLabel-setFixedWidth(100);
statusBar()-addPermanentWidget(statusLabel); //(c)
statusBar()-addPermanentWidget(MousePosLabel);
this-setMouseTracking(true); //(d)
resize(400,200);
}
鼠标事件
mousePressEvent()函数为鼠标按下事件响应函数,QMouseEvent类的button()方法可以获得发生鼠标事件的按键属性(左键、右键、中键等)。具体代码如下:
voidMouseEvent::mousePressEvent(QMouseEvent*e)
{
QStringstr=(+QString::number(e-x())+,+QString::number(e-y())+); //(a)
if(e-button()==Qt::LeftButton)
{
statusBar()-showMessage(tr(左键:)+str);
}
elseif(e-button()==Qt::RightButton)
{
statusBar()-showMessage(tr(右键:)+str);
}
elseif(e-button()==Qt::MidButton)
{
statusBar()-showMessage(tr(中键:)+str);
}
}
鼠标事件
mouseMoveEvent()函数为鼠标移动事件响应函数,QMouseEvent类的x()和y()方法可以获得鼠标的相对位置,即相对于应用程序的位置。具体代码如下:
voidMouseEvent::mouseMoveEvent(QMouseEvent*e)
{
MousePosLabel-setText((+QString::number(e-x())+,+QString::number(e-y())+));
}
mouseReleaseEvent()函数为鼠标松开事件响应函数,其具体代码如下:
您可能关注的文档
- Qt 5 开发及实例(第5版) 课件 第1章 Qt概述.pptx
- Qt 5 开发及实例(第5版) 课件 第2章 Qt 5模板库、工具类及控件.pptx
- Qt 5 开发及实例(第5版) 课件 第3章 Qt 5布局管理.pptx
- Qt 5 开发及实例(第5版) 课件 第4章 Qt 5基本对话框及实例.pptx
- Qt 5 开发及实例(第5版) 课件 第5章 Qt 5主窗口及实例.pptx
- Qt 5 开发及实例(第5版) 课件 第7章 Qt 5绘图及实例.pptx
- Qt 5 开发及实例(第5版) 课件 第8章 Qt 5文件、目录与数据库操作.pptx
- Qt 5 开发及实例(第5版) 课件 第9章 Qt 5模型-视图及实例.pptx
- Qt 5 开发及实例(第5版) 课件 第10章 Qt 5网络通信及实例.pptx
- Qt 5 开发及实例(第5版) 课件 第11章 定时器、线程和DLL库.pptx
- 苏教版8年级上册数学全册教学课件(2021年10月修订).pptx
- 比师大版数学4年级下册全册教学课件.pptx
- 冀教版5年级上册数学全册教学课件.pptx
- 办公室普通党员2024年组织生活会个人对照检查发言材料供参考.docx
- 领导班子成员2025年组织生活会“四个带头”对照检查材料范文.docx
- 2024年度专题组织生活会个人“四个带头”对照检查材料范文.docx
- 党支部领导班子2025年民主生活会“四个带头”个人对照检查材料范文.docx
- 2024年抓基层党建工作述职报告参考范文.docx
- 2024年度民主生活会征求意见情况的报告范文2篇.docx
- 普通党员2024年组织生活会个人“四个带头”对照检查发言材料2篇.docx
最近下载
- 小儿放血疗法.pptx
- 教师言谈礼仪教程 第五章.ppt
- 1.2《齐桓晋文之事》课件(共62张PPT) 统编版高中语文必修下册.pptx VIP
- 8时间的脚印 导学案.docx VIP
- 2024年幼儿园大班科学《美丽的项链》 课件.pptx
- 2025年广东省基层住院医师线上岗位培训--全科学专业培训课程专业课答案.docx VIP
- 汽车电气设备构造与维修 课件 项目七 辅助电器设备检修 任务二 中央门锁控制系统检修.pptx
- 初中语文【时间的脚印】导学案.docx VIP
- 2025年教科版科学五年级下册全册教案(含教学计划).docx
- 义务教育版信息科技四年级全一册 第三单元第14课 编码也能动起来 教案.pdf
文档评论(0)