搜狗网站制作涟源网站seo
搜狗网站制作,涟源网站seo,睢宁微网站开发,wordpress的后台文章图文发布问题描述#xff1a; 在窗口拖动的过程中刚开始可以流畅的拖动窗口#xff0c;但是一小会儿之后出现窗口拖不动的现象#xff0c;或者按下鼠标在拖动区域内可以流畅拖动#xff0c;但是按下鼠标朝一个方向拖动后#xff0c;释放鼠标#xff0c;按照此操作操作几次后…问题描述 在窗口拖动的过程中刚开始可以流畅的拖动窗口但是一小会儿之后出现窗口拖不动的现象或者按下鼠标在拖动区域内可以流畅拖动但是按下鼠标朝一个方向拖动后释放鼠标按照此操作操作几次后出现窗口拖不动的情况但是过一会儿后窗口又可以被拖动。 发生问题的环境介绍 在窗口中创建了一个场景qgraphicsScene,此场景为自定义场景在自定义场景的构造函数中创建一个图形项设置此图形项的属性画笔的粗细颜色等。在自定义场景中重写鼠标的按下移动释放事件。通过鼠标事件的响应可以实现场景中图形项的移动。 解决的方法 通过输出信息判断图形项的rect其虽然在窗口中移动但是其位置坐标变为了负值此时便会出现拖不动的情况另外鼠标按下的点的坐标出现负值时也会出现上述拖不动的现象。故位置坐标有问题由于是在一个窗口中拖动坐标位置又出现负值因此添加拖动过程中对边界的限制以及对鼠标按下的点的位置设置。 其添加的设置代码如下 if(ptTopLeft.x() 0){ptTopLeft.setX(0);}if(ptTopLeft.y() 0){ptTopLeft.setY(0);}if(ptTopLeft.x() SMALL_W - m_rectSaved.width()){ptTopLeft.setX(SMALL_W - m_rectSaved.width());}if(ptTopLeft.y() SMALL_H - m_rectSaved.height()){ptTopLeft.setY(SMALL_H - m_rectSaved.height());}ptTopLeft是被拖动的图形项的左上角坐标对其位置做出限制避免了其值为负场景移动的过程中越过其所在窗口边界。 对于鼠标按下的点的设置和上面基本差不多。 if(mouseEvent-scenePos().x() 0){mouseEvent-scenePos().setX(0);}if(mouseEvent-scenePos().y() 0){mouseEvent-scenePos().setY(0);}if(mouseEvent-scenePos().x() SMALL_W){mouseEvent-scenePos().setX(SMALL_W);}if(mouseEvent-scenePos().y() SMALL_H){mouseEvent-scenePos().setY(SMALL_H);}scenePos()获取的是按下点的场景坐标当然在拖动过程中图形项和按下的点的坐标类型都为场景坐标其中宏SMALL_H及SMALL_W为窗口的大小。 只做记录。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88177.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!