• 8525阅读
  • 2回复

[提问]关于QGraphicsView的父窗体透明后,鼠标事件穿透与坐标系对齐的问题 [复制链接]

上一主题 下一主题
离线xp2009
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-27
第一个问题,当QGraphicsView本身设置为透明后,鼠标左键点击只有在点到QGraphicsItem时才会触发MousePress事件,覆盖虚函数QWidget::event发现,在透明空白处点击鼠标左键不会触发鼠标点击事件,我想把这个点击事件向上传递给QGraphicsView的父窗体怎么实现?

第二个问题,当QGraphicsView的父窗体设置为透明后,QGraphicsView与QGraphicsScene坐标系对齐的方式发生了改变,似乎QGraphicsScene始终以桌面全局窗体的左上角对齐了,通过QGraphicsView->setGeomotry(x,y,width,height),x,y取QGraphicsView的全局桌面坐标,可以强行的把QGraphicsScene对齐到QGraphicsView的左上角,但是QGraphicsScene的可见区域始终是以桌面左上角对齐的,也就是说QGraphicsView的下面和右边的一些QGraphicsItem始终是看不到的。在QGraphicsView的父窗体透明时,如何处理QGraphicsView与QGraphicsScene坐标系之间的关系?
离线daily

只看该作者 1楼 发表于: 2014-06-27
我现在也有一个问题就是SceneRect的大小改变后出现拉杆,但是拉杆拉动去看不到item。调试的时候发现根本不进painter函数。百思不得其解
离线xp2009

只看该作者 2楼 发表于: 2014-06-30
关于问题二,调试后我发现QGraphicsView基类的AbstractScrollView,它的viewport,显示的可见区域左上角以QGraphicsView的左上角对齐,但是右下角没有和QGraphicsView右下角对齐,但是把屏幕左上角和viewport的右下角连成的矩形刚好又和QGraphicsView的Rect差不多大,当按键盘下键,下面没有显示的GraphicsItem内容又滚动到可见区域来显示。

从这个现象我判断,可能是AbstarctScrollView的viewport对齐反生了问题,不过我强行viewport->setGeometry,却没有效果。
快速回复
限100 字节
 
上一个 下一个