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

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

具体效果如下图:
...全文
1873 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
未狂 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
  • 打赏
  • 举报
回复
顶,高手给个思路

16,154

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧