随笔分类 -  Qt-Event2

摘要:刚做完的一个项目,在测试时出现了一个问题:由于多线程的存在,当进行语音识别时:如果用户点击程序界面上的button或者其他接受点击事件后会发出信号的widget时,程序会crash ! 后来尝试着从多线程上去解决,但是比较困难;后来只能从另外一条路来解决,那就是:当语音识别进行时:禁掉一切用户操作!... 阅读全文
posted @ 2015-12-08 21:50 findumars 阅读(1790) 评论(0) 推荐(0) 编辑
摘要:思路很简单,就是加一个延时,判断在特定时间内是否有第二个鼠标事件[cpp]view plaincopyprint?//tqt.h#ifndefTQT_H_#defineTQT_H_#include#includeclassClickedLabel:publicQLabel{Q_OBJECTpriva... 阅读全文
posted @ 2015-11-25 07:50 findumars 阅读(552) 评论(0) 推荐(0) 编辑
摘要:做一个无法关闭的QT程序(想关闭时要在任务管理器里关闭),看似很难,其实它并不难,只要让程序在关闭时启动它自身就可以了。上代码:[cpp]view plaincopyprint?#includeclassTemp:publicQWidget{Q_OBJECTprivate:QLabel*label;... 阅读全文
posted @ 2015-11-25 07:37 findumars 阅读(1228) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/qq_34389528/article/details/76284124 阅读全文
posted @ 2015-11-20 23:16 findumars 阅读(1774) 评论(0) 推荐(0) 编辑
摘要:在Qt中,键盘事件和QWidget的focus密不可分:一般来说,一个拥有焦点(focus)的QWidget或者grabKeyboard()的QWidget才可以接受键盘事件。 键盘事件派发给谁? 如何确定谁来接收键盘事件,不妨看一点点QApplication的源码: X11下 QETWidget 阅读全文
posted @ 2015-11-18 23:27 findumars 阅读(1244) 评论(0) 推荐(0) 编辑
摘要:一、Qt中事件处理的方式1、事件处理模式一 首先是事件源产生事件,最后是事件处理器对这些事件进行处理。然而也许大家会问,Qt中有这么多类的事件,我们怎么样比较简便的处理每个事件呢?设想,如果是每个事件都对应同一个事件处理器,在该事件处理器中对不同的事件进行分类处理,这样的弊端有两点:第一,导致... 阅读全文
posted @ 2015-11-09 23:40 findumars 阅读(1843) 评论(0) 推荐(0) 编辑
摘要:QAction系列详解一、QAction类详解【详细描述】 QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。 应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面,这... 阅读全文
posted @ 2015-11-09 23:31 findumars 阅读(7817) 评论(0) 推荐(0) 编辑
摘要:Qt中事件分发源代码剖析Qt中事件传递顺序:在一个应该程序中,会进入一个事件循环,接受系统产生的事件,并且进行分发,这些都是在exec中进行的。下面举例说明:1)首先看看下面一段示例代码:[cpp]view plaincopyintmain(intargc,char*argv[]){QApplica... 阅读全文
posted @ 2015-11-09 23:27 findumars 阅读(625) 评论(0) 推荐(0) 编辑
摘要:纵所周之,当一个程序的启动比较耗时的时候,为了不让用户枯燥的等待或者是误以为程序运行异常了,所以我们都会在启动比较耗时的程序中加上启动界面 ,例如office软件等等。 在Qt中实现启动界面,主要就是使用QSplashScreen类。该类比较简单,这里就不对类本身做过多说明了,主要是以一个例子来说明 阅读全文
posted @ 2015-11-09 22:18 findumars 阅读(2568) 评论(0) 推荐(0) 编辑
摘要:起源 qtcn中文论坛中有网友问到: 这儿其实有两个问题: 模态对话框 和 事件循环 没有必然联系 事件循环 和 子线程 没有必然联系 题外: 如果进一步呢?其实我们还可以说: 模态对话框 和 QDialog 没必要联系 QDialog 对话框 两种常规用法: 非模态 当然,这儿用指针(即分配到he 阅读全文
posted @ 2015-10-16 22:31 findumars 阅读(4551) 评论(0) 推荐(0) 编辑
摘要:熟悉的陌生人Qt 是事件驱动的,所以当你用Qt的时候,几乎时时刻刻和 QEventLoop 打交道、,只是你可能没有意识到:QCoreApplicaton::exec()QApplication::exec()QDialog::exec()QThread::exec()QDrag::exec()QM... 阅读全文
posted @ 2015-10-16 22:27 findumars 阅读(1924) 评论(0) 推荐(0) 编辑
摘要:1、QMouseEvent中的坐标QMouseEvent中保存了两个坐标,一个是全局坐标,当然另外一个是局部坐标。全局坐标(globalPos())即是桌面屏幕坐标(screen coordinates),这个跟windows下的调用getCursorPos函数得到的结果一致。局部坐标(pos()) 阅读全文
posted @ 2015-10-11 04:39 findumars 阅读(21922) 评论(0) 推荐(1) 编辑
摘要:思路很简单,就是加一个延时,判断在特定时间内是否有第二个鼠标事件[cpp]view plaincopyprint?//tqt.h#ifndefTQT_H_#defineTQT_H_#include#includeclassClickedLabel:publicQLabel{Q_OBJECTpriva... 阅读全文
posted @ 2015-10-01 18:41 findumars 阅读(399) 评论(0) 推荐(0) 编辑
摘要:MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理[cpp]view plaincopyprint?#include#include#include#include#include#include[cpp]view plaincopyprint?#inclu... 阅读全文
posted @ 2015-10-01 18:01 findumars 阅读(901) 评论(0) 推荐(0) 编辑
摘要:转载:http://www.qtcn.org/bbs/simple/?t31383.htmlAnother Look at Events(再谈Events)最近在学习Qt事件处理的时候发现一篇很不错的文章,是2004年季刊的一篇文章,网上有这篇文章的翻译版,但是感觉部分地方翻译的比较粗糙,不是很明确... 阅读全文
posted @ 2015-10-01 16:58 findumars 阅读(417) 评论(0) 推荐(0) 编辑
摘要:转载:http://www.cuteqt.com/blog/?p=2088Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等。既然Qt可能出于某种原因,不对这些进行支持,我们就只能自己写代码,调用系统相关的API了。注意,这个是Windows篇,就说明这些代... 阅读全文
posted @ 2015-10-01 16:55 findumars 阅读(1965) 评论(0) 推荐(0) 编辑
摘要:这里讨论的只是Windows平台上的实现。 在QT中绘制异形窗口,只要设定 windowFlag 为 CustomizeWindowHint,再结合setMask()就可以做出各种奇形怪状的窗口。相对来说比较麻烦的, 是进行窗口拖动和缩放的处理。 在 Windows SDK 和 MFC 中比... 阅读全文
posted @ 2015-10-01 16:02 findumars 阅读(3970) 评论(0) 推荐(0) 编辑
摘要:初学Qt,用了Qt自带的事件,然后想怎么才能定义自己的事件呢?又如何使用自定义事件呢?看了篇文章,说先要子类化QEvent,然后定义自己的QEvent::Type,然后重写QWidget::event()函数,然后就可以调用QCoreApplication::sendEvent()或者QCoreAp... 阅读全文
posted @ 2015-09-07 20:08 findumars 阅读(399) 评论(0) 推荐(0) 编辑
摘要:最近一直在用Qt做一个简单的俄罗斯方块的游戏,由于要实现一个暂停游戏的功能,就是当鼠标移出正在运行的游戏,点击电脑桌面上的其他位置时,这个时候游戏暂停。在这里把实现过程简单的记录一下,作为一个学习笔记,如果有什么错误之处,还希望大家指出,共同提高,谢谢!刚开始的时候,我很自然的想到要实现这个功能,只... 阅读全文
posted @ 2015-09-03 17:10 findumars 阅读(3826) 评论(0) 推荐(1) 编辑
摘要:以前我一直以为:在父widget上摆一个子widget后,当click子widget时:只会进入到子widget的相关事件处理函数中,比如进入到mousePressEvent()中, 而不会进入到父widget的对应事件处理函数中。毕竟:click的是子widget,其遮挡住了父widget,从而父... 阅读全文
posted @ 2015-08-20 22:58 findumars 阅读(870) 评论(0) 推荐(0) 编辑