2011年1月19日

Q_DECLARE_METATYPE说明

摘要: 在使用Qt进行应用程序开发时,经常要自定义数据类型,而且在需要的时候还要把这些数据放到QVariant中去。因为QVariant是一个接受绝大部分类型的数据类型。为了达到这个目的,就必须使用Q_DECLARE_METATYPE。下面以一段简单的代码说明Q_DECLARE_METATYPE的用法和注意点。通过Q_DECLARE_METATYPE声明后,就可以让自定义的类型设置到QVariant。(注:关于Q_DECLARE_METATYPE和Q_DECLARE_METATYPE相关,以后还会继续增加。。。) 阅读全文

posted @ 2011-01-19 00:30 ActiveChange 阅读(10714) 评论(0) 推荐(0)

2011年1月17日

Qt事件处理器(二)——特殊情况处理

摘要: Qt提供了5个级别的事件处理和事件过滤方法。1.重新实现像mousePressEvent()这样的事件处理器。这事最常用的。2.子类化QApplication并且重新实现notify()。QApplication::notify()用来给接收者发送一个指定事件。这种方法每次只能激活一个子类的event()函数去处理事件。3.在qApp中注册事件过滤器,那么应用程序中的每个对象的每个事件都会在发送到其他事件过滤器之前,先发送给这个eventFilter()函数。它也可以用来处理那些发送 给失效窗口部件的鼠标事件。4.重新实现QObject::event(),可以再这些事件到达特定的事件处理器之前 阅读全文

posted @ 2011-01-17 21:01 ActiveChange 阅读(2639) 评论(0) 推荐(1)

Qt事件处理器(一)——事件监视器

摘要: Qt事件模型是一个非常强大的功能。在事件模型中,可以通过设置监视器,监视发送给所有子部件的事件,并在监视代码中实现所需的行为。创建一个事件过滤器包括两个过程:1.通过对目标对象调用installEventFilter()来注册监视对象。2.在监视对象的eventFilter()函数中处理目标对象的事件。形式:lineEdit-installEventFilter(obj); obj-eventFilter(QObject* watchedObj, QEvent* event); lineEdit-removeEventFilter(obj);其中lineEdit是被监视对象,obj是监视 阅读全文

posted @ 2011-01-17 20:21 ActiveChange 阅读(1907) 评论(0) 推荐(0)

编写整洁的代码(一)

摘要: 能编写整洁的代码是衡量一个程序员能力的标准之一。所谓整洁的代码,我认为至少应该是可读性高,没有多余的代码,逻辑清晰,即使刚接触代码的人来读,也能很容易理解的代码。为了给自己总结总结,决定写一写这方面的体会。在一般的项目中,往往存在很多的分支和条件判断语句。往往一开始时,代码的逻辑比较清晰简单,但随着需求的增加和变更,模块中的分支就会多起来,而且开发人员往往由于发布时间所限,往往都是实现了机能就算完了。但这样的代码往往在今后的维护和变更时需要开发人员,维护人员付出大量的时间和精力去理解它。所以,除了在开发时,注意及时重构外,我们要思考解决这类问题的方法。在之前做过一些项目中,特别是嵌入式的项目, 阅读全文

posted @ 2011-01-17 00:52 ActiveChange 阅读(233) 评论(0) 推荐(0)

2011年1月14日

Pro文件变量详细说明

摘要: 学习Qt时,发现有些知识看了不经常用就忘了,以下是书本上写的一些关于qmake的相关知识,自己看后,打算把一些经常用到的记下来,整理整理。Qt程序一般使用Qt提供的qmake工具来编译。qmake工具可以使用与平台无关的.pro文件生成与平台相关的makefile。该工具包含了调用Qt内置代码生成工具(moc,uic,rcc)的必要逻辑规则。可以在命令行下,输入qmake -project来生成平台无关的pro文件。工程文件pro主要分为三种:app(单独的应用程序),lib(静态和动态库),subdirs(递归编译)。工程类型可以使用TEMPLATE变量来指定。如: TEMPLATE = a 阅读全文

posted @ 2011-01-14 20:42 ActiveChange 阅读(6398) 评论(0) 推荐(0)

2010年12月30日

extern详解

摘要: extern详解 阅读全文

posted @ 2010-12-30 14:27 ActiveChange 阅读(122) 评论(0) 推荐(0)

导航