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

网站的优化公司wordpress没有找到站点

网站的优化公司,wordpress没有找到站点,深圳网站建设公司哪个,赣州创可通科技有限公司文章目录qt系统事件处理鼠标事件鼠标移动事件处理键盘事件定时器事件窗口移动和大小改变事件结语很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 作者:٩( ‘ω’ )و260 我的专栏&#xff1a…

文章目录

  • qt系统
    • 事件
    • 处理鼠标事件
    • 鼠标移动事件
    • 处理键盘事件
    • 定时器事件
    • 窗口移动和大小改变事件
    • 结语

很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!!
在这里插入图片描述
作者:٩( ‘ω’ )و260
我的专栏:qt,Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!

qt系统

事件

事件是应用程序内部或者外部产生的事情或者动作的统称。在qt中由QEvent该类来表示事件,同时,也衍生出了qt中常见的事件。
在这里插入图片描述
分别代表鼠标事件,键盘事件,定时器事件等等。

事件与信号槽的联系:信号槽其实封装了事件,比如qt中内置的信号,但是如果当内置的信号无法达到用户想要的效果时,此时就必须使用事件来完成。

那我们需要如何处理事件呢?
一定是需要使用多态机制,这些事件在父类中都有对应的虚函数,我们所做的就是需要创建子类,在子类中对虚函数进行重写
重写需要满足三同(函数名,参数类型和个数,返回值),我们可以取巧在qt助手中来搜索对应的函数。

我们来看例子:

处理鼠标事件

通过处理该事件,我们能够完成鼠标进入和离开任何控件,并对应发出事件的操作。
我们先来讲一点细节,这里使用label控件,实现当鼠标进入该控件的时候,实现对应的日志打印,同时,鼠标离开该控件的时候,也实现日志的打印。

为什么我这里使用label来实现呢?其实使用什么控件都是可以的,主要就是需要看范围是什么,如果想鼠标进入离开事件并实现日志打印在Widget界面上的话,就需要对QWidget控件的子类进行该信号得重写。

我们先给QLabel创建一个子类label:
在这里插入图片描述
随后我们来完善一下子类的信息,我们需要完善一下构造函数,因为父类的构造函数有参数:
在这里插入图片描述
我们使用qt assistant来搜索enterEvent和leaveEvent,这样保证函数不会写错,同时,我们对该虚函数在子类中完成重写:
在这里插入图片描述
我们运行代码,来看结果,发现日志并没有打印,这个是怎么回事呢?答案其实在ui文件中,我们能够发现,我们创建的label挂在对象树上挂的是什么类型,是QLabel类型:
在这里插入图片描述
我们需要对其进行转换,右键控件->提升为:
在这里插入图片描述
一定要保证提升类名称和我们创建的子类名称是相同的,否则仍然会出现问题(我们子类类型叫label)。
在这里插入图片描述
此时成功修改,这里还有一个细节,一定注意名字不要和类型起的冲突了,再来看结果:
在这里插入图片描述
使用鼠标点击事件我们能够获得鼠标更多的详细信息,比如鼠标的位置,鼠标的操作主要分为两类,鼠标按下,鼠标松开,这两个动作合成一起的话可以构成一个鼠标点击,同理,也有鼠标双击的,直接来看代码:
在这里插入图片描述
注意:此时我点击的是控件左上角位置,此时坐标非常小,说明控件的原点坐标在左上角。
如果说我们使用globalX()函数,此时坐标就以显示屏左上角为基准算的了:
在这里插入图片描述
我们Widget界面是800x600的,此时坐标都达到了875,足以说明此时坐标原点是显示器左上角。

还有其他事件,而且Event中还能够知道用户按下了什么键,比如:左键,右键,来看代码:
在这里插入图片描述
鼠标双击其实也是和上面单击,按下,释放一样的,这里不再演示了。

鼠标移动事件

顾名思义,当鼠标发生移动的时候,该事件就会触发。
来看代码:
在这里插入图片描述
发现这样写,当Widget界面出来之后,我们在Widget界面上进行移动,发现并没有日志打印出来,这个又是什么原因呢?
因为鼠标移动事件轻轻移动鼠标,就会产生大量的鼠标移动事件,就需要有大量的事件需要捕捉,无疑这会对程序造成效率降低,所以我们必须强制设置一下捕捉该信号:
在这里插入图片描述
当我们在Widget构造函数中添加上这一段话的时候,再来看结果:
在这里插入图片描述

处理键盘事件

在以前的学习中,其实我们已经接触过键盘事件,只是我们不知道,其实QShortcut设置快捷键就是使用事件来完成的,就是使用qsequence这个类

这里我们可以通过键盘事件获取单个按键,当然也可以获取两个按键,比如快捷键的方式。

我们这里新创建一个项目,因为创建的Widget本身就是继承QWidget,上面例子只能够在label范围中使用,此时我们就能够在整个Widget中使用了!!
在这里插入图片描述
此时打印日志成功显示,这里还有一个细节,因为我们此时的可操作范围是Widget,我们一定要选择Widget界面之后,再来按下A键,日志才会打印,如果没有选中,此时输入A就是输入法输入的A。
在这里插入图片描述
接下来我们再来实现快捷键的形式,我们需要使用到modifirs这个类,来看代码:
在这里插入图片描述
这里的效果和上面的一样的,按下对应按键,出现日志信息。

定时器事件

定时器事件其实和我们之前学习了定时器类似,而且,定时器时间比控件形式还需要进行手动的管理timeId,还需要区分是哪个timeEvent发出的信号,所以,定时器事件更麻烦一些,推荐使用控件形式,我们直接来看代码:
在这里插入图片描述
随后其实就是一个10秒的倒计时器了,这个结果我们就不在演示了!

窗口移动和大小改变事件

通过窗口位置或者窗口大小的改变就会触发该信号,我们直接来看代码:
在这里插入图片描述
直接来看结果:
在这里插入图片描述
当我们每次移动或者缩放Widget窗口的时候,就会打印日志,你们应该是连续的打印,因为我的qt版本有点老。

结语

感谢大家的认真阅读,不足之处欢迎留言指正,我们下期再见!
在这里插入图片描述

http://www.dtcms.com/a/440446.html

相关文章:

  • C语言-指针进阶
  • 苏州科技网站建设苏州设计工作室
  • 灵感档案 | 《Celeste》中跳跃手感的仿制版源代码学习
  • 邯郸网站设计应搜韦欣cidun8上词互联网公司排名名单
  • 宣武做网站外包公司一个人头挣多少钱
  • 英一2010年真题学习笔记
  • 锡林郭勒盟工程建设造管理网站邮箱域名可以做网站吗
  • 黑龙江住房建设部网站wordpress博客添加标签
  • 平面设计教程网站有哪些专业的做网站
  • 做网店网站wordpress弹窗网页
  • 网站如何做百度百科c2c模式的特点类似于现实商务世界中的跳蚤市场
  • `epoll_ctl` 函数中,`int fd` 和 `epoll_event.data.fd`的疑问
  • 哪些网站的做的好看的图片广州企业推广网站建设
  • 小说网站开发思路该网站未在腾讯云备案
  • 网站后台建设教程下载现在的网络营销方式
  • 网站实现重庆网站建设仿站
  • 重庆江北营销型网站建设价格上饶营销网站建设
  • wordpress语法高亮搜索引擎优化的定义
  • Python推导式详解与应用
  • 自建网站做跨境电商学网站建设需要什么软件有哪些
  • 安徽建设干部学校网站首页开源软件
  • 网站开发项目实战黄骅港防疫办电话
  • 烟台建设用地规划查询网站云主机 多个网站
  • 网站聊天系统怎么做做一个自适应网站多少钱
  • 华为商城网站设计如何查看网站的服务器位置
  • 公司网站建设费计入什么科目seo优化实训内容
  • 不属于营销型网站的特点山东网站seo开发
  • 网站制作费用大概多少永州网站建设gwtcms
  • 坪地网站建设包括哪些龙岩全网搜系统开发
  • 英国设计网站海南学校网站建设