关于Qt坐标缩放以及重绘的请教

qq_---_- 2015-04-07 05:35:44
1,我用qpainter绘制一个widget,其中一部分需要用到坐标放大,但是坐标放大后里面的曲线会覆盖到周边部分,而我只需要显示放大后原区域内的图像(由于坐标放大,原区域以及无法装下原来的图像),能不能将放大后超过原区域的内容按照原区域裁去呢?另外补充一点,我只是在这个区域用到了坐标放大,别的部分正常坐标,因改区域需要放大显示。
2,关于Qt的局部重绘问题。我需要在面板上显示很多条曲线。当我第一次打开面板时,我读取所有曲线的所有点的集合画线,这个函数drawcurves在paintevent函数里调用。当我曲线上增加一个点时,我希望只绘制新点到最后一点的连线,函数drawonecurve也要在paintevent里调用,然后update两点包围的矩形rect即可。问题是,当我的新点数据到来是我调用update(rect)时drawcurves函数会不会被执行?虽然没有更新所有曲线数据,执行下来时间也是不短的,因为点很多。。。。。我需要在paintevent里加上条件判断?看是执行drawcurves还是drawonecurve吗?

说的比较绕,不知道表达清楚没有。。。看明白的指点一下好吗?
...全文
504 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_---_- 2015-04-08
  • 打赏
  • 举报
回复
第一个问题补充一点,放大区域类似一个示波器,当用户用鼠标或者触摸屏滑动一个矩形时,我就讲用户选取的矩形扩大到整个示波器屏幕显示,示波器周边是坐标系和文字说明,如图
qq_---_- 2015-04-08
  • 打赏
  • 举报
回复
引用 1 楼 dext 的回复:
第一个问题可以用画两次来解决。 第二个问题可以用双缓存解决。
关于第一个问题,画2次是可以解决,把坐标放大后超过区域的曲线遮盖,即除此区域外的该widget所有区域重绘,重绘之前还要先用同色矩形覆盖一下,感觉麻烦,qt没有这个功能吗?也就是放大一定区域坐标系,只在一定区域内放大,放大后超过该区域的部分自动隐藏
dext 2015-04-07
  • 打赏
  • 举报
回复
第一个问题可以用画两次来解决。 第二个问题可以用双缓存解决。

16,215

社区成员

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

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