
Qt
文章平均质量分 53
yzl11
付出往往要>回报
展开
-
update和repaintde的区别
当产生一个绘制事件并且调用paintEvent()函数的时候,会出现如下几种情况: 1)在窗口部件第一次显示时,系统会自动产生一个绘制事件,从而强制绘制这个窗口部件本身。 2)当重新调整窗口部件的大小时,系统也会产生一个绘制事件。 3)当窗口部件被其他窗口部件遮挡,然后又再次显示出来的时候,就会对那些隐藏的区域产生一个绘制事件(除非这个窗口系统存储了整个区域)。原创 2015-10-27 09:54:48 · 770 阅读 · 0 评论 -
Qt::WA_StaticContents的作用
Qt::WA_StaticContents这个属性告诉Qt,当重新改变窗口部件的大小时,这个窗口部件的内容并没有发生变化,而且它的内容仍旧保留从窗口部件左上角开始的特性。当重新定义窗口部件的大小时,通过使用这个信息,Qt就可以避免对已经显示区域的重新绘制。图5.5图示了这一情形。 通常情况下,当重新定义一个窗口部件的大小时,Qt会为窗口部件的整个可见区域生成一个绘制事件。但是如果该原创 2015-10-27 09:50:56 · 1708 阅读 · 1 评论 -
Qt中使用到的设计模式之反射模式
所谓反射,就是指对象成员的自我检查。使用反射编程(reflective programming),就可以编写出通用的操作,可对具有各种不同结构的类进行操作,使用通用的值存储器QVariant,就可以按照一种统一的方式来对基于类型和其它普通类型进行操作。QMetaObject——元对象模式 所谓元对象(meta object),就是描述另一个对象结构的对象。原创 2015-10-28 08:18:17 · 2301 阅读 · 0 评论 -
线程依附性
一个QObject实例是具有线程依附性的,或者说它驻留在某个线程。当一个OQbject接收到队列信号(queued signal)或者投递事件(posted event),槽函数或者事件处理函数运行在对象驻留的线程中。 注意:如果一个QObject没有线程依附性(也就是说thread()函数返回0),或者它位于没有运行事件循环的线程内,那么它就不能接收到队列信号或者投递事件。原创 2015-10-28 20:32:23 · 780 阅读 · 0 评论 -
Qt中的智能指针
尽管C++不支持垃圾回收,但C++对象的自动内存管理还是可以通过好几种方式来实现,主要是通过智能指针使用以及引用计数。Qt提供了许多不同的智能指针类型,以适用于不同的用途。一个重写了指针解引用操作operator*()和operator->()的类被称为智能指针。这使得类实例的行为就像它是一个内置指针一样。这样的类几乎总是模板类,因此定义时必须在模板参数中提供引用类型。最常见的能找到这些重写操原创 2015-10-27 19:15:14 · 9041 阅读 · 0 评论 -
Qt中的并发
QThread是一个低级(low-level)类,适合用于显式地构建长期运行的线程。 QtConcurrent是一个命名空间,提供了用于编写并发软件的更高层次的类和算法。该命名空间中有一个重要的类,QThreadPool,这是一个管理线程池的类。每个Qt应用程序都有一个QThreadPool::globalInstance()函数,它带有一个推荐的最大线程数,在大多数系统上,处理核的数原创 2015-10-28 09:58:40 · 6443 阅读 · 0 评论