当前位置: 首页 > wzjs >正文

哪个网站做黑色星期五订酒店活动武汉网站建设

哪个网站做黑色星期五订酒店活动,武汉网站建设,织梦网站教程,佛山网站建设Qt中的事件是对操作系统提供的事件机制进行封装,Qt中的信号槽就是对事件机制的进一步封装 但是特殊情况下,如对于没有提供信号的用户操作,就需要通过重写事件处理的形式,来手动处理事件的响应逻辑 常见的Qt事件: 常见事…

Qt中的事件是对操作系统提供的事件机制进行封装,Qt中的信号槽就是对事件机制的进一步封装

但是特殊情况下,如对于没有提供信号的用户操作,就需要通过重写事件处理的形式,来手动处理事件的响应逻辑

常见的Qt事件:

常见事件描述

事件名称

描述

鼠标事件

鼠标左键、鼠标右键、鼠标滚轮,鼠标的移动,鼠标按键的按下和松开

键盘事件

按键类型、按键按下、按键松开

定时器事件

定时时间到达

进入离开事件

鼠标的进入和离开

滚轮事件

鼠标滚轮滚动

绘屏事件

重绘屏幕的某些部分

显示隐藏事件

窗口的显示和隐藏

移动事件

窗口位置的变化

窗口事件

是否为当前窗口

大小改变事件

窗口大小改变

焦点事件

键盘焦点移动

使用QEvent来表示事件的概念,使用其子类表示具体操作产生的事件

自定义事件处理的方式:

让当前的类,重写具体事件的处理函数----用的是C++的多态机制

创建的子类继承自Qt已有的类,在子类中重写父类的事件处理函数,后续触发事件时,通过多态机制,执行子类重写的处理函数

例:

重写鼠标进入enterEvent和鼠标离开leaveEvent的事件

在ui界面创建一个pushbutton,当鼠标离开,进入时进行debug输出

通过创建一个QPushButton的子类---新建文件为c++类,在子类中重写两个事件的处理函数

在pushbutton.h引入头文件,修改构造函数的声明,使其在构造时能指定父类

在pushbutton.cpp实现构造函数指定父类

在pushbutton.h声明要重写的事件处理函数,要想重写父类的函数,需要保证函数名和函数的参数列表与父类的完全一致

在pushbutton.cpp文件实现处理函数重写

但是此时无法触发重写函数,因为在ui界面创建的按钮是QPushButton,而不是重写的pushbutton

通过在ui界面右键点击pushbutton,点击提升为

成功提升后,对象树中控件的名字就会发生改变

此时,鼠标离开和进入事件的处理函数就成功被自定义

鼠标按下事件

mousePressEvent()

通过事件获取并打印鼠标的位置

在ui界面创建一个label,并将farmeshape设置为box

在新建一个c++class文件,继承自QLabel

修改头文件和cpp文件中的构造函数,使接收父类指针

在再ui界面,将QLabel提升为label

在label.h头文件声明重写事件处理函数mousePressEvent

在label.cpp文件进行重写,实现触发label的鼠标点击事件后,输出鼠标位置

还需将头文件导图mainwindow.cpp中

此时就可以通过自定义的事件处理函数来实现点击label输出鼠标位置

不仅左键能触发,右键或其它标准鼠标按键都能触发mousePressEvent事件

可以设置为仅将左键触发的事件进行输出

鼠标释放事件

鼠标释放事件是mouseReleseEvent()

在上面的label继续进行虚函数重写

头文件进行虚函数声明

源文件进行重写

鼠标双击事件

mouseDoubleClickEvent()

同样在label进行虚函数声明与重写

鼠标移动事件

mouseMoveEvent()

直接在新建的MainWindow文件的mainwindow类进行重写,是鼠标在整个窗口的动作都能被获取到

声明

重写

运行后,开始时无输出

因为鼠标移动事件,随便移动一下鼠标就会产生大量的鼠标移动的事件,当进行事件捕获时,会有大量鼠标移动事件需要处理,容易造成程序卡顿

Qt为了保证程序的流畅性,默认情况下不会对鼠标移动进行追踪,鼠标移动时不会调用mouseMoveEvent,除非显示告诉Qt需要追踪鼠标位置

方法:

在构造函数调用setMouseTracking(),将是否追踪鼠标位置设为true,才能追踪鼠标的移动位置

鼠标滚轮的滚动事件

wheelEvent()

例:

新建文件继承自QWidget

进行虚函数声明与重写

按键事件

Qt中的按键事件是通过QKeyEvent类来实现的,当键盘上的按键被按下或者被释放时,键盘事件便会触发

Qt中封装了按键事件----QShortCut类

通过QShortCut定义一个快捷键,指定按键后,按下对应按键发出对应信号,通过定义信号的槽函数来实现对应操作

通过事件直接获取用户按下键盘的操作

keyPressEvent(QKeyEvent* )

QKeyEvent

例:

创建一个继承自QWidget的文件

进行虚函数的声明和重定义

按下a,b,c后打印65,66,67,因为Qt中将键盘的所有按键进行枚举

通过对key值进行判断可以获取指定按键是否被按下,如获取a键

对于组合键,如:ctl+a如何进行获取?

同样可以通过key值利用modifiers---同时按下了什么键,来进行获取

定时器事件

Qt中在进行窗口程序的处理过程中,经常要周期性的执行某些操作,可以通过定时器进行实现。

定时器就是在时间间隔一定时间后,去执行某一共任务。

Qt中的定时器分为QTimerEvent和QTimer俩个类

QTimerEvent

QTimerEvent类用来描述一个定时器事件。在使用时需要通过startTimer()函数来开启一个定时器,这个函数需要输入一个以毫秒为单位的整数作为参数来表明设定的时间,它返回的整形值代表这个定时器。当定时时间到达时,就可以在timerEvent()函数中获取该定时器的编号来进行相关操作。

例:

创建一个继承自QWidget的文件

实现简单的倒计时功能

在ui界面创建一个LcdNumber

将其初始值设为10

在头文件声明一个int timerid用来接收定时器编号

在构造函数开启定时器事件,接收timerid

对timerEvent进行虚函数的声明与重写

QTimer类来实现一个定时器---由QTimerEvent封装而来,提供更高层次的编程接口,如:可以使用信号和槽,还可以设定只运行一次的定时器

窗口事件

moveEvent()窗口移动时触发的事件

resizeEvent()窗口大小改变时触发的事件

例:

创建一个继承自QWidget的文件

对两个虚函数进行声明与重写

http://www.dtcms.com/wzjs/456614.html

相关文章:

  • 国内怎么打开WordPress网站关键词挖掘长尾词工具
  • 农资网络销售平台搜索优化的培训免费咨询
  • 摄影化妆艺术学校网站源码如何做电商
  • 途牛网站大数据建设网络运营团队
  • 医院网站建设 中企动力长沙疫情最新消息今天封城了
  • 做网站销售是干什么的宿州百度seo排名软件
  • 许昌做网站汉狮网络网站推广优化的方法
  • 外贸关键词网站电脑培训
  • 武汉做网站熊掌号整合营销传播案例分析
  • 化妆品网站做的好的怎么自己注册网站
  • 海城网站建设百度产品大全入口
  • 好的ftp网站网络营销可以做什么工作
  • 网站开发语言在线检测优化关键词的步骤
  • 服饰网站模板设计如何做一个自己的网站呢
  • wordpress统计点击ip杭州优化商务服务公司
  • 石家庄网站快速排名上海抖音推广
  • 云南省网站建设公司网络营销策略优化
  • 网站开发什么技术网络搜索引擎
  • 百家利网站开发软文范例100例
  • 苏州建站公司优搜苏州聚尚网络企业网站优化方案
  • 潜江人才网官网搜索引擎优化seo多少钱
  • 怎样用eclipse做网站腾讯中国联通
  • 网站301重定向代码百度网盘怎么提取别人资源
  • 建设聚美优品网站收流量费吗上海seo排名
  • 卢沟桥做网站的公司南宁seo网络优化公司
  • 衡水网站建设维护日照网络推广公司
  • 手机网站建设制作教程视频百度推广代理商返点
  • 同和网站建设seo产品推广
  • wordpress代码行号快速排名优化怎么样
  • 贵州建设厅网站报名系统中关村在线app