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

品牌建设的四条主线台州网站快速优化排名

品牌建设的四条主线,台州网站快速优化排名,昆山网页网站制作,雅淇wordpressQt中的事件是对操作系统提供的事件机制进行封装,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/a/564250.html

相关文章:

  • 做网站要学什么软件wordpress跨域登录
  • 如何做京东优惠券网站新手做网站视频
  • led网站源码开网店怎么开 新手需要多少资金
  • 网站建设合同要上印花税吗商城网页设计
  • 电子商务网站建设的步骤过程成都中高风险地区名单
  • 做网站的用什么主机好宁波十大建设集团
  • 做网站的样版物流公司网站设计
  • 个人账号密码网站建设邵阳网站建设网站
  • 荆门网站建设公司个人网页制作成品 模板
  • 建设网站网址是多少四川十大设计院
  • 公司的网站如何建设国家反诈中心app下载流程
  • 深圳营销网站建设公司排名沐风 wordpress 主题
  • 720全景网站怎么做网站栏目结构图模板
  • 如何做网站经营性备案杭州萧山区专门做网站的公司
  • 百色建设网站网络推广有哪几种方法
  • 办公用品十大购物网站排名企业网站导航下拉菜单怎么做
  • 北京网站开发工程师哪个网站可以做破案h5
  • 吉林省建设集团网站网络整合营销理论
  • 刷题网站开发怎么做百度网站验证
  • 巩义做网站优化wordpress 同步公众号
  • 做网站都需要什么资料dw中怎样做网站链接
  • 电脑公司网站管理系统济宁祥云网站建设
  • 河南省住房城乡和建设厅网站建材城电商网站建设
  • 网站建设亿金手指科杰织梦培训机构网站模板
  • 外贸品牌网站建设龙岗外贸网站制作
  • 物流公司做网站注重什么问题微信营销策略
  • 官网的网站建设公司百度贴吧网页版登录
  • 代做网站多少钱深圳住房和建设局网站网上预约
  • 网站开发类标书报价明细表东莞网络优化哪家好
  • 网站建设广州天河区wordpress4.8移动