可以让QGraphicsScene自动适应QGraphicsView的大小吗?

weixin_38053367 2019-09-19 12:42:22
我编写了一个图片浏览的程序。大体是这样的:将单张图片通过addPixmap函数加入到QGraphicsScene的实例scene中,再将scene设为QGraphicsView的Scene。这样使用QGraphicsView的scale函数可以很方便的进行图片的缩放。这个功能已实现。        现在我想让图片加载时或在多次缩放后,能够自动根据QGraphicsView窗口的大小将图片缩放至适应大小,恰好全显示在QGraphicsView的窗口中。我试了好几个返回窗口大小的函数,其返回的大小好像都不会随着我缩放的大小而改变。比如scene->width()或者scene->height(),无论我怎么缩放,这个值好像都是不变的。无法获得多次缩放后的大小也就无法确定调整至适应大小时的缩放比。。。      不知道各位大神有什么办法帮我实现这一功能?
...全文
3523 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
老唐僧 2022-08-26
  • 打赏
  • 举报
回复

请问大佬,这个问题解决了吗

weixin_38087157 2019-09-19
  • 打赏
  • 举报
回复
试了好些个办法,我还是用最笨的办法解决了。。。既然无法获取多次缩放后,scene的大小,我就自己设置了两个变量来存储scene缩放后的长、宽。虽然笨,不过能解决问题。
weixin_38098817 2019-09-19
  • 打赏
  • 举报
回复
谢谢各位大神的解答和思路
weixin_38102527 2019-09-19
  • 打赏
  • 举报
回复
源码取消了?
weixin_38063608 2019-09-19
  • 打赏
  • 举报
回复
你试试根据QGraphicsView的viewport()试试.
weixin_38068996 2019-09-19
  • 打赏
  • 举报
回复
QGraphicsView::fitInView() 试过了么?
weixin_38072696 2019-09-19
  • 打赏
  • 举报
回复
我把目前写了的部分的源码打包上传到百度云了,求指导 http://pan.baidu.com/s/1jGHV38M
weixin_38073288 2019-09-19
  • 打赏
  • 举报
回复
使用了这个框架似乎就注定了与坐标变换的永久奋斗……你是希望让图片始终充满窗口,所以我想你可能需要对这个图片或者scene的可视区域进行缩放缩放的因子我觉得可以通过图片大小与可视区域大小相比来获得addPixmap应该会返回一个item吧……?如果有的话对这个item调用setScale()应该就行了。不过在此之前可能需要对item进行setTransformOriginPoint(),让item的缩放以他的某个中心进行或者我记得scene还是view本身就有setScale()?或许直接调用这个会更好一些?
weixin_38078387 2019-09-19
  • 打赏
  • 举报
回复
view有个setSceneRect(),scene有个itemsBoundingRect(),可能会对你有用?如果是想找到当前view的显示区域是scene的什么地方的话,可以考虑view.mapToScene(view.viewport()->rect())如果想把这个区域转换到item的坐标系中的话,可以考虑item.mapFromScene()总之各种坐标转换,慢慢考虑
weixin_38081011 2019-09-19
  • 打赏
  • 举报
回复
确实addPixmap有返回值QGraphicsPixmapItem,嗯,是个思路,我试试这几个

477

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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