• 9749阅读
  • 5回复

QGraphicsItem与QGraphicsScene的右键问题 [复制链接]

上一主题 下一主题
离线tianykun
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-28
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
用QGraphicsScene 作为一个现实图片的场景,当中放了很多的QGraphicsItem,支持随意的拖动
但是在使用右键的时候,QGraphicsItem与QGraphicsScene同事有右键事件contextMenuEvent(QGraphicsSceneContextMenuEvent *event)的时候
只响应QGraphicsScene的右击事件,QGraphicsItem的却不响应了。请问是怎么回事??
如果要同时响应这两个事件,应该怎么做?????

离线wisconxing
只看该作者 1楼 发表于: 2009-05-04
我也有同感,请高手指点。

谢谢
离线sbtree
只看该作者 2楼 发表于: 2009-05-04
在QGraphicsScene的右键菜单函数中判断鼠标处是否有item,没有就执行QGraphicsScene的右键菜单代码,否则直接调用scene默认的右键菜单函数
[ 此帖被sbtree在2009-05-04 16:23重新编辑 ]
windows 7 + VC++2008 + Qt4.5.2
离线tianykun
只看该作者 3楼 发表于: 2009-05-05
找到问题的解决所在:
其实不用钻牛角尖的
QT有很多自己的例子,可以参考他的做法
比如这里:用action组成的一个菜单栏传递过去,再利用scene的selectChanged()来判断action是否有效就可以
只有scene一个菜单,item根本不用执行右键的事件
离线boyle
只看该作者 4楼 发表于: 2009-05-07
Qt4 GUI 编程第八章里面的diagram范例程序中也有这个问题,在Node上右击可以保持Node的选中,但是在Link上右击则会取消Link的选中,从而只显示什么都没有选中时的右键菜单
离线boyle
只看该作者 5楼 发表于: 2009-05-07
注:diagram使用的办法就是3楼提到的办法。
但是右击的时候,不同的Item相应还是不同的。
有高手指点一二吗?
关键就是,在Link选中的时候,如何使得propertiesAction也能被enabled
快速回复
限100 字节
 
上一个 下一个