• 3852阅读
  • 6回复

点击QGraphicsItem边界才可以移动 [复制链接]

上一主题 下一主题
离线laijunguang
 

只看楼主 倒序阅读 楼主  发表于: 2018-08-16
继承了QGraphicsItem,画了一个矩形,写了boundingRect,但是当设置移动的时候,用户可以在这个rect中就可以移动,我想实现用户点击rect的边界后才可以移动,这样的功能如何实现,谢谢大神们了
离线大漠之鹰

只看该作者 1楼 发表于: 2018-08-16
判断点击的位置啊,过滤掉离边框远的点
本是后山人,偶作前堂客,醉舞经阁半卷书,坐井说天阔。大志戏功名,海斗量福祸,论到囊中羞涩时,怒指乾坤错
QQ:874164244
离线wbw_1234

只看该作者 2楼 发表于: 2018-08-16
重载contains()虚函数,在这个函数中进行判断
离线laijunguang

只看该作者 3楼 发表于: 2018-08-16
回 大漠之鹰 的帖子
大漠之鹰:判断点击的位置啊,过滤掉离边框远的点 (2018-08-16 11:12) 

怎么获取边框的点? 因为画多边形,如4个点的多边形,获取不到其连接线(即边框)的点,则无法判断
离线laijunguang

只看该作者 4楼 发表于: 2018-08-16
回 wbw_1234 的帖子
wbw_1234:重载contains()虚函数,在这个函数中进行判断 (2018-08-16 11:23) 

用什么作为判断条件?
离线maxlogo

只看该作者 5楼 发表于: 2018-08-16
重写shape即可,item的鼠标判断是根据shape来判断的
个人博客:
简书:https://www.jianshu.com/u/14fa805306bd
CSDN:https://blog.csdn.net/qq10097355
思否:https://segmentfault.com/u/lowbees/articles
离线laijunguang

只看该作者 6楼 发表于: 2018-08-17
回 maxlogo 的帖子
maxlogo:重写shape即可,item的鼠标判断是根据shape来判断的 (2018-08-16 16:01) 

嗯嗯,好的,这个是可以的,重写shape,将自己要的形状增加至QPainterPath中,后再用QPainterPathStroker类提取出边界,返回至boundingRect中
快速回复
限100 字节
 
上一个 下一个