• 全部
  • 问答

如何解决scroll时的闪烁问题,请教高手

smq 2016-09-14 05:19:07
Qt中如何解决滚动时闪烁问题
我编写了个绘图应用,拖动滚动条时,需要滚动所绘制内容,我如下实现:
widget->scroll(dx, 0);
........... //绘制暴露出来的内容到一个pixmap上
painter->drawPixmap()
但是发现滚动时,调用scroll后,屏幕绘制内容滚动了,但是暴露的还未画完,造成滚动时闪烁
但是我看qtextedit器件滚动时也没有闪烁啊,请教高手如何解决

具体效果如下图:
...全文
1329 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
未狂 2019-02-20
1.初始化的时候就要把所有的数据全部绘制上
2.先载入第一屏,不管有没有滚动,继续往下面绘制,一直把所有数据全部绘制完

边滚动边绘制计算不过来

现在很多编辑器载入大文件的时候,都是使用第二种方式局部载入,如果文件刚打开直接往最后拖也会出现卡顿的情况
回复
kerwin liu 2019-02-18
这种情况像scroll时drawPixmap 矩形坐标没算准
回复
前端-补人 2019-02-18
用淡入淡出,试试
回复
smq 2017-01-23
由于某种原因不能使用双缓冲
回复
冷静忍耐 2016-09-28
这明显就是刷新不过来,如果你编译成release版本,应该就勉强好了 最好用QGraphicsView
回复
Little柯南 2016-09-26
构造代码里面就把滚动区域初始化了,最好设置获得screen尺寸的数值,写setFixSize(w,h)------为了防止加载产生影响; 然后在激发图像响应代码里面,写图像生成的功能
回复
东莞某某某 2016-09-19
用双缓冲或者graphics view 来实现
回复
kxywnljz 2016-09-19
拖动时候,你就在widget进行绘制?这样肯定不行拖动时多少鼠标有抖动,那你就是一直绘制,数据量大,还会卡,建议使用双缓冲
回复
smq 2016-09-18
顶,高手给个思路
回复
相关推荐
发帖
Qt
创建于2009-11-04

1.3w+

社区成员

Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
申请成为版主
帖子事件
创建了帖子
2016-09-14 05:19
社区公告
暂无公告