Qt 中事件与处理

一、事件与处理
程序在运算过程中发生的一些事情:鼠标单击、键盘的按下...
这些的事件的监控与处理在Qt中不是以信号的方式处理的。
当这些事件发生时会调用QObject类中的功能函数(虚函数),所有的控件类都继承了这个类。

常用的鼠标事件:
void mousePressEvent(QMouseEvent *); 按下
void mouseReleaseEvent(QMouseEvent *); 弹起
void mouseMoveEvent(QMouseEvent *); 按下时并移动
void mouseDoubleClickEvent(QMouseEvent *); 双击(会触发按下和弹起);

通过QMouseEvent 可以判断出是个按键:
event->button() == Qt::LeftButton
event->button() == Qt::RightButton
event->button() == Qt::MidButton

常用的键盘事件:
void keyPressEvent(QKeyEvent *); 按下
void keyReleaseEvent(QKeyEvent *); 弹起

通过QKeyEvent 可以判断出按键的键值:
event->key == Qt::Key_Up;

常用的窗口事件:
void closeEvent(QCloseEvent *); 窗口关闭
void paintEvent(QPaintEvent *); 窗口显示
void moveEvent(QMoveEvent *); 窗口移动

 

二、线程与多线程
1、在Qt中什么情况下需要多线程?
在单线程时,如果在耗时较长的操作,那么主界面会被阻塞。
会产生卡死的现象。

2、Qthread类
a、必须要继承
b、必须要重写run函数

3、等待线程
QThread::wait(time);
功能:等待线程结束并回收,与pthread_join一样。
time:设置要等待的秒数,如果时间到了线程还没有结束则等待失败,默认值是ULONG_MAX(一直等下去)。

4、终止线程
QThread::terminate(),让线程结束执行。
terminated(),线程结束信号。

练习:如何用信号槽,在子线程里发送信号给主线程,让主线程显示图片(修改GUI主界面)。
1、在创建类时立即添加 Q_OBJECT
2、如果编译后末添加,把所有Qt自动生成的文件删除
3、使用qmake -project、qmake、make

三、线程同步
QMutex 互斥量
QReadWriteLock 读写锁
QSemaphore 信号量
QWaitCondition 条件变量

功能与Linux系统中的一样,但这4项是跨平台使用的。

 

转载于:https://www.cnblogs.com/xiwen2017/p/9634769.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓APP_ 布局(1)—— LinearLayout

摘自:安卓APP_ 布局(1)—— LinearLayout 作者:丶PURSUING 发布时间: 2021-04-05 16:46:22 网址:https://blog.csdn.net/weixin_44742824/article/details/115442240 LinearLatout 一、orientation&#xf…

鼠标点击测试_鼠标键盘如何检测故障,这边教您简单的测试

沉迷,教您简单的测试鼠标故障。有线键盘和鼠标的检测步骤:(1)将电脑关机,拔插对应的连接线。(2)移除所有除了键盘和鼠标之外的设备,然后重启电脑。(3)重启后,观察鼠标的灯是否有亮。点击滚动锁定键,观察键盘…

影响计算机的速度有哪些,影响电脑速度的硬件有哪些

影响电脑速度的硬件有哪些?影响最直接的是cpu、内存条、硬盘。其次是主板、显卡。一、处理器cpucpu是电脑的大脑,是运算核心和控制核心,它的主要作用是处理指令和数据,电脑所有的硬件工作分工都市cpu分配和协调的。所以,cpu的层次…

自学笔记:计时器Chronometer

public class MainActivity extends Activity implements OnClickListener {/*** 待完善*/private Chronometer chronometer null;private long temp;private boolean isrestart;Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceSta…

atom编写python程序_编写我们的第一个Python程序,print.py

Python安装后,默认会安装很多功能模块,方便开发应用程序时调用,需要增加默认功能模块以外的模块时,使用的是PIP 这个工具,把需要模块安装到C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\Lib\sit…

安卓APP_ 布局(2) —— RelativeLayout相对布局

摘自:安卓APP_ 布局(2) —— RelativeLayout相对布局 作者:丶PURSUING 发布时间: 2021-04-05 20:19:54 网址:https://blog.csdn.net/weixin_44742824/article/details/115445242 RelativeLayout 一、根据父容器定位二、…

mutli-lane情况

PCIE3.0支持x1,x2,x4,x8,x16,x32 Lane widths. 在多条Lane情况下,有2类symbol framing,一类包含Ordered Sets,一类是TLP和DLLP。 Ordered Sets会同时在每条Lane上传输,所以每条Lane都会有完整的OS. 对于TLP/DLLP来说,S…

win10英雄联盟登录服务器未响应,win10系统英雄联盟登陆不上的解决方法

很多小伙伴都遇到过win10系统英雄联盟登陆不上的情况,想必大家都遇到过win10系统英雄联盟登陆不上的情况吧,那么应该怎么处理win10系统英雄联盟登陆不上呢?我们依照1、尝试打开网页或登录QQ查看是否正常能打开/登录,如果可以打开可…

玩转SSRS第六篇---客户端报表进阶

上一篇介绍了客户端报表的基本开发。此篇讲介绍如何给客户端报表自定义开发数据源。 通过上一篇我们知道可以通过Dataset的方式给报表添加数据源,这种方式通过UI操作的方式相对来说比较简单。此外我们也可以通过其它方式为客户端报表提供数据源,使数据的…

安卓APP_ 布局(3) —— FrameLayout帧布局

摘自:安卓APP_ 布局(3) —— FrameLayout帧布局 作者:丶PURSUING 发布时间: 2021-04-05 20:41:02 网址:https://blog.csdn.net/weixin_44742824/article/details/115447658 帧布局的机制 从左上角开始绘制。 若有重叠&…

wpf page 界面渲染完成后执行自动操作_Vue项目骨架屏自动生成方案(dps)

什么是骨架屏什么是骨架屏呢?骨架屏(Skeleton Screen)是指在页面数据加载完成前,先给用户展示出页面的大致结构(灰色占位图),在拿到接口数据后渲染出实际页面内容然后替换掉。Skeleton Screen 是近两年开始流行的加载控…

js等待当前线程内ajax完成,理解javascript定时器中的单线程

一、JavaScript 引擎是单线程的可以从下面的代码中看到,第一个用setTimeout中的代码是死循环,由于是单线程,下面的两个定时器就没机会执行了。setTimeout( function(){ while(true){} } , 100);setTimeout( function(){ alert(你好!setTimeou…

虚拟机安装与概述(3)

创建虚拟机点击”文件“菜单——新建——”新建虚拟机“命令点击新建虚拟机,进入新建虚拟机向导!配置类型选择“标准”,然后点击下一步打开新建虚拟机安装向导,安装从:安装盘镜像文件(iso)点击”…

安卓APP_ 布局(4) —— TableLayout表格布局

摘自:安卓APP_ 布局(4) —— TableLayout表格布局 作者:丶PURSUING 发布时间: 2021-04-11 22:55:50 网址:https://blog.csdn.net/weixin_44742824/article/details/115448051 如果直接在TableLayout中写入控件&#xf…

多个文件同时写 linux sd卡_相机报错:“记忆卡已锁定”别着急,都是写保护在搞事情...

我的相机存储卡突然被锁定了!这是什么情况?这个问题,刚刚就出现在了我的小伙伴身上。可能您也曾经遇到过这种情况,只是各品牌相机所提示的不同罢了,其主原因都是存储卡误开启了写保护。SD卡写保护是使用中比较简单却又…

vue+webpack+npm dev环境下内存溢出解决办法

increase-memory-limit转载于:https://www.cnblogs.com/kenwar/p/9639766.html

道闸系统服务器价格,小区道闸系统价格服务客户

开优先功能在道闸运行过程中,无论闸杆是处于开闸过程、关闸过程或停止状态,如输出开闸信号,则闸杆马上执行开闸(上行)动作,防止因各种原因造成的砸车现象。遥控开关闸功能通过配置专用的三联电子开关和遥控电子开关,可…

JavaScript this 小结

this关键字引用的是包含它的函数作为某个对象的方法被调用时的那个对象。———《JavaScript.Dom高级程序设计》 这句话拆开来看 this包含this的函数函数被调用时 以函数作为方法的对象 就是说,当函数被调用时,这个函数属于某个对象的方法,这…

安卓APP_ 布局(5) —— GridLayout网格布局

摘自:安卓APP_ 布局(5) —— GridLayout网格布局 作者:丶PURSUING 发布时间: 2021-04-12 00:08:31 网址:https://blog.csdn.net/weixin_44742824/article/details/115609773 布局比表格更加灵活方便。 父容器对子控件的…

windows xp https页面找不到_Windows 提权快速查找 Exp

微软官方时刻关注列表网址:https://technet.microsoft.com/zh-cn/library/security/dn639106.aspx比如常用的几个已公布的exp:KB2592799,KB3000061,KB2592799等。快速查找未打补丁的exp,可以最安全的减少目标机的未知错…