• 4117阅读
  • 2回复

[讨论]update与paintevent [复制链接]

上一主题 下一主题
离线yuzhouzhiwai
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-15

有个问题:  就是QWIdget里面的  update函数,update() 是全部绘制  update(const QRegion & rgn)   是绘制rgn这个区域,但是我发现这两个函数分别调用完之后,都会执行paintevent函数
有什么区别呢?
不也都是重绘吗?
虽然update函数里 把那个区域赋值进去了,但是paintevent函数里  一样的调用 一样的重绘啊


我开始以为 它在画的时候 会判断是否在某个区域
但是好像没判断啊


求教

多谢

离线pxiao_xiao

只看该作者 1楼 发表于: 2013-07-15
QPainter有函数 如 setClipRegion() 这个是设置某个区域重绘
paintEvent() 自然是从头开始绘制
离线dbzhang800

只看该作者 2楼 发表于: 2013-07-16
这个区域会通过event参数传递给paintevent()函数的,但是该函数内有有没有使用该参数,就是实现者个人的问题了。

如果将paintevent()类比成整理卫生的保姆,你可能会通知她,整理一下客厅,整理一下厨房,等等。但是保姆就一个工作模式,只要听到命令,就整理全部房间。
快速回复
限100 字节
 
上一个 下一个