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