Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt中实现无弹跳的磁效应_Qt - Fatal编程技术网

如何在Qt中实现无弹跳的磁效应

如何在Qt中实现无弹跳的磁效应,qt,Qt,在我的Qt项目中,我正在开发一种磁铁效应。有两个widgetsMaster和Slave。Slave的左边框将移动到Master的右边框。当Slave移动时,它们彼此相距30像素时,我称之为磁铁效应,然后它们一起进入_状态。一旦它们一起进入_状态,Slave将在Master移动时移动,反之亦然。**当**从设备移动时,其左边框与主设备右边框的距离超过30像素时,它们进入分离状态。据我所知,Teamviewer具有类似的效果 实现磁铁效应的一种方法是,当满足上述条件时,使用从机的moveEvent中

在我的Qt项目中,我正在开发一种磁铁效应。有两个widgetsMaster和Slave。Slave的左边框将移动到Master的右边框。当Slave移动时,它们彼此相距30像素时,我称之为磁铁效应,然后它们一起进入_状态。一旦它们一起进入_状态,Slave将在Master移动时移动,反之亦然。**当**从设备移动时,其左边框与主设备右边框的距离超过30像素时,它们进入分离状态。据我所知,Teamviewer具有类似的效果

实现磁铁效应的一种方法是,当满足上述条件时,使用从机的moveEvent中的move函数将从机移动到主机的右边界。但它将有助于flicking,因为moveEvent中的move小部件将导致无限递归


有人有什么好主意吗?我说明白了吗?

是奴隶主的孩子吗?如果是,则从父级事件调用从级移动。可能是MousedRageEvent或WindowMoveEvent。@AbhishekBansal正如我所说,我在Slave的moveEvent中使用了移动功能,这有助于flicking。Qt注意到在moveEvent中调用move或setGeometry会导致无限递归。这就是我所得到的,也许我错过了一些重要的东西。是的,你是正确的。如果您从内部移动moveEvent,您将得到闪烁,您无法避免以这种方式闪烁。在小部件已经移动之后调用MoveEvent。所以,如果从内部调用move,它将再次调用moveEvent。所以最好的方法是调用“从外部从部件移动”。@AbhishekBansal是的,我只是想找到一些开箱即用的方法?QT中没有任何东西可以为您提供开箱即用的功能。