• 5596阅读
  • 11回复

[提问]Qt中paintEvent [复制链接]

上一主题 下一主题
离线laiquzizai
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-22
关键词: QT4QPainter
想要实现每画N条线就对窗口上的所有线擦除,然后重画的循环结构。网上找了很久,没找到怎么擦除线段的方法,求高手帮解决。

各位路过的,不忘提个想法啊,谢谢!
离线roywillow

只看该作者 1楼 发表于: 2012-12-22
你对paintEvent的理解有问题
paintEvent中每次往窗口中绘制的时候,是不存在擦除这个概念的
每次都是从空白开始绘制
所以你需要的不是擦除,而是记忆已经绘制的东西,下次重新绘制
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线laiquzizai
只看该作者 2楼 发表于: 2012-12-22
回 1楼(roywillow) 的帖子
我设置了一个结构体,记住了画下的点的坐标。
离线laiquzizai
只看该作者 3楼 发表于: 2012-12-22
回 1楼(roywillow) 的帖子
好吧,应该是一个指向结构体的数组,记下所有线的起点和末点。
离线roywillow

只看该作者 4楼 发表于: 2012-12-23
回 3楼(laiquzizai) 的帖子
总之每次paintEvent都是个新开始,以及当你想重绘的时候就调用update()……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线laiquzizai
只看该作者 5楼 发表于: 2012-12-23
回 4楼(roywillow) 的帖子
可能其中有许多东西没弄明白,我自己先琢磨琢磨,谢啦。
离线jdwx

只看该作者 6楼 发表于: 2012-12-23
只画需要的。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线laiquzizai
只看该作者 7楼 发表于: 2012-12-23
回 6楼(jdwx) 的帖子
我想我已经知道是怎么回事了,可以先将画的线压入Vector容器,每次重新划线的时候,都把之前画过的,需要保留的线刷新重绘一次。这样就可以保证线的条数。
离线chen12nan

只看该作者 8楼 发表于: 2012-12-28
回 1楼(roywillow) 的帖子
我想请问一下,怎么在paintEvent里面实现它的记忆功能呢?
学习QT...痛苦并快乐着的.keep moving。
离线roywillow

只看该作者 9楼 发表于: 2012-12-28
回 8楼(chen12nan) 的帖子
paintEvent没有记忆
但是你继承的类可以
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线chen12nan

只看该作者 10楼 发表于: 2012-12-29
回 9楼(roywillow) 的帖子
貌似只能重新画一遍。
学习QT...痛苦并快乐着的.keep moving。
离线roywillow

只看该作者 11楼 发表于: 2012-12-29
回 10楼(chen12nan) 的帖子
当然你也可以用qimage之类的先缓存起来
不过那个时候你就要关心擦除的问题了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个