Lv.的博客

随笔分类 -  qt_event

事件处理
摘要:尽管 Qt 已经提供了很多事件,但对于更加千变万化的需求来说,有限的事件都是不够的。例如,我要支持一种新的设备,这个设备提供一种崭新的交互方式,那么,这种事件如何处理呢?所以,允许创建自己的事件 类型也就势在必行。即便是不说那种非常极端的例子,在多线程的程序中,自定义事件也是尤其有用。当然,事件也并... 阅读全文
posted @ 2015-09-17 10:09 Avatarx 编辑
摘要:前面一章我们简单介绍了如何使用QThread实现线程。现在我们开始详细介绍如何“正确”编写多线程程序。我们这里的大部分内容来自于Qt的一篇Wiki文档,有兴趣的童鞋可以去看原文。在介绍在以前,我们要认识两个术语:可重入的(Reentrant):如果多个线程可以在同一时刻调用一个类的所有函数,并且保证... 阅读全文
posted @ 2015-09-15 13:02 Avatarx 编辑
摘要:事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等;另一些事件则是由系统自动发出,如计时器事件。事件也就是我们通常说的“事件驱动(event drive)”程序... 阅读全文
posted @ 2015-09-15 10:08 Avatarx 编辑
摘要:在监测的代码里执行需要的行为. 这可以用event Filter来达到. 设置一个event filter有两个步骤:1. 在目标对象上调用installEventFilter(),将监测对象注册到目标对象上.2. 在监测对象的eventFilter()方法里处理目标对象的事件.在ctor里注册监测... 阅读全文
posted @ 2014-08-30 22:45 Avatarx 编辑
摘要:qtevents多线程工作object存储Another Look at Events(再谈Events)最近在学习Qt事件处理的时候发现一篇很不错的文章,是2004年季刊的一篇文章,网上有这篇文章的翻译版,但是感觉部分地方翻译的比较粗糙,不是很明确。索性重新翻译了一遍,并引用了原翻译版的一段译注。... 阅读全文
posted @ 2014-08-29 09:41 Avatarx 编辑
摘要:qtuserclass1、事件ID 本质上就是一个整型值。0-999作为系统保留字段,自定义事件从QEvent::User(也就是1000)开始, 例如: #define MY_EVENTQEvent::User+100 大部分情况下自定义事件是不会冲突的,如果我们还引入了其他库,也不完全能确保如... 阅读全文
posted @ 2014-08-29 09:40 Avatarx 编辑
摘要:本文旨在说明:QDialog::exec()、QMenu::exec()等开启的局部事件循环,易用的背后,还有很多的陷阱...引子Qt 是事件驱动的,基本上,每一个Qt程序我们都会通过QCoreApplication或其派生类的exec()函数来开启事件循环(QEventLoop):int main... 阅读全文
posted @ 2014-05-29 00:41 Avatarx 编辑
摘要:Qt事件机制Qt程序是事件驱动的,程序的每个动作都是由幕后某个事件所触发.。Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。Qt事件的类型很多,常见的qt的事件如下:键盘事件:按键按下和松开.鼠标事件:鼠标移动,鼠标按键的按下和松开.拖放事件:用鼠标进行拖放.滚轮事件:鼠标滚轮滚动.... 阅读全文
posted @ 2014-05-28 23:06 Avatarx 编辑
摘要:CTRL+Enter发送信息的实现 在现在的即时聊天程序中,一般都设置有快捷键来实现一些常用的功能,类似QQ可以用CTRL+Enter来实现信息的发送。 在QT4中,所有的事件都继承与QEvent这个类,以下是用QEvent来实现快捷键的功能。 首先所有QT类的基类QObject有一个成员函数ins... 阅读全文
posted @ 2014-05-28 22:53 Avatarx 编辑
摘要:#define TEST_EVENT QEvent::User + 100class CVxActuatorMain : public QMainWindow{ protected: void customEvent(QEvent *event);}CVxActuatorMain::CVxActua... 阅读全文
posted @ 2014-05-23 09:13 Avatarx 编辑

点击右上角即可分享
微信分享提示