找回密码
 立即注册
收起左侧

Graphics View 中控件大小控制

6
回复
7072
查看
[复制链接]
累计签到:24 天
连续签到:1 天
来源: 2017-4-4 22:24:45 显示全部楼层 |阅读模式
2Qter豆
首先,描述一下问题的背景:我想实现一个简易的类似于visio或者labview的拖动元素到一个绘图界面的功能.在学习Graphics View框架的时候遇到了一个问题,我想要利用鼠标拖动来放大或者缩小控件的大小.类似于以下动图中的功能.另外,由于我是新手,虽然网上有类似于我这样的需求的人很多,但是我不知道有没有已经有了开源的Qt类库实现了labview类似的拖拽控件的功能,如果有的话,希望大家能够提供给我相关的信息,我好学习如何使用,比自己想着功能实现应该会方便,而且也会学习更多技巧.谢谢回答!希望得到你们的答案.谢谢.
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

可以实现一个控制点类,然后在你的图元中需要的位置画上加上这些控制点,每次改变大小的时候也同时改变这些控制点的位置。
回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2017-4-4 22:24:46 显示全部楼层
adongguo 发表于 2017-4-15 18:36
并没有完成图中的功能,就像图中上下左右中间等等那几个让鼠标改变形状的点应该怎么去处理,怎么在item中加 ...

可以实现一个控制点类,然后在你的图元中需要的位置画上加上这些控制点,每次改变大小的时候也同时改变这些控制点的位置。
回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2017-4-6 08:25:10 显示全部楼层
据我了解,符合这种需求的开源库不多,当时我也要做这种功能,都是自己实现的。
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-4-7 10:36:25 显示全部楼层
wdmxtk002 发表于 2017-4-6 08:25
据我了解,符合这种需求的开源库不多,当时我也要做这种功能,都是自己实现的。 ...

能否了解一下你的实现思路,是不是在Graphic View上实现的呢?  具体思路是什么呢? 谢谢帮助.
回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2017-4-7 12:02:46 显示全部楼层
我的实现方法是在自己的item上加了一层边框,其实也就是另一个item,在边框上实现鼠标相关的几个函数,然后重绘item。
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-4-15 18:36:07 显示全部楼层
wdmxtk002 发表于 2017-4-7 12:02
我的实现方法是在自己的item上加了一层边框,其实也就是另一个item,在边框上实现鼠标相关的几个函数,然后 ...

并没有完成图中的功能,就像图中上下左右中间等等那几个让鼠标改变形状的点应该怎么去处理,怎么在item中加上他们,并且让它们响应鼠标事件.谢谢了,希望得到你的回答.谢谢.

点评

可以实现一个控制点类,然后在你的图元中需要的位置画上加上这些控制点,每次改变大小的时候也同时改变这些控制点的位置。  详情 回复 发表于 2017-4-17 09:27
回复

使用道具 举报

累计签到:24 天
连续签到:1 天
2017-4-22 19:24:05 显示全部楼层
wdmxtk002 发表于 2017-4-17 09:27
可以实现一个控制点类,然后在你的图元中需要的位置画上加上这些控制点,每次改变大小的时候也同时改变这 ...

谢谢你的帮助,使用prepareGeometryChange();方法可以重新绘制item,控制点也是一个Item,然后把控制点的父Item定义为矩形框,通过响应控制点的鼠标事件让矩形框prepareGeometryChange,然后重新绘制实现了类似的功能.
谢谢你的帮助.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了