• 6853阅读
  • 6回复

关于paintevent的问题 [复制链接]

上一主题 下一主题
离线梦境梦痕
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-17
— 本帖被 XChinux 执行加亮操作(2008-11-02) —
我想问如果我画一个波形,当新数据来了后,我要画出新的点这个时候我如果使用update();那它将会把我以前画的都更新掉,我又得再重新全部画一次,这样做不是很浪费资源吗?QT为什么要这样呢?而且我看很多例子也乐于这样做,我一直想不通呀!

请问各位大大,这样做好在什么地方呀
离线xiaodong
只看该作者 1楼 发表于: 2008-10-17
可以先把Qpainter 的东西画到QPixmap上啊。
离线梦境梦痕
只看该作者 2楼 发表于: 2008-10-17
谢谢你
你的意思是一直都画在QPixmap上,每次进去都贴一次?
离线xiaodong
只看该作者 3楼 发表于: 2008-10-17
差不多这个意思吧,这样记录在QPixmap上的东西是一直有的,就不必重新画了
离线chaoscxm
只看该作者 4楼 发表于: 2008-10-17
应为有画面切换的需要。并不是所有的绘图都是画图表那样只变一点点的部分,如果每次都要保留缓冲再分析哪些部分需要更新会更加消耗资源。
想想看,看电影和玩游戏时候大幅的画面切换的情景。
帖子签名(将在每个帖子下方显示)
离线diyuanbo

只看该作者 5楼 发表于: 2008-10-18
新的数据来了,如果要前面的数据向左移一格,或许是右移、上、下,谁知到呢?那只有你自己根据历史数据重新画整个区域。如果在右边增加一个,只要update那一小块区域就可以了。如果窗口被擦掉后又要显示,需要重画那个区域。这就需要根据存储的数据,在合适的位置画合适的内容,如果不想做这个工作可以用QPixmap。
离线laurentium
只看该作者 6楼 发表于: 2008-12-22
用QPixmap怎么画?能否给个例子?谢谢!
快速回复
限100 字节
 
上一个 下一个