程序产生事件有两种方式, 一种是调用QApplication::postEvent(), 例如QWidget::update()函数,当需要重新绘制屏幕时,程序调用update()函数,new出来一个paintEvent,调用 QApplication::postEvent(),将其放入Qt的消息队列中,等待依次被处理;另一种方式是调用sendEvent()函数,事件不会放入队列, 而是直接被派发和处理, QWidget::repaint()函数用的就是这种方式。
说白了就是repaint()立刻调用paintevent()刷新。。。update()不会立刻调用piantevent()刷新
本文揭示了Qt中QApplication::postEvent()与sendEvent()两种事件调度方式的区别,重点讲解了QWidget::update()与repaint()在屏幕刷新中的作用。update()将事件加入消息队列,而repaint()直接触发paintEvent()实现即时刷新。

1145

被折叠的 条评论
为什么被折叠?



