网站域名验证,网站建设投标ppt,北京商场人气排名,wordpress4.7.2卡问题描述
在graphicview中拖拽控件从A位置到B位置#xff0c;但是从B位置再次拖拽控件的时候#xff0c;控件依旧从A位置出发#xff0c;与鼠标不处于同一位置。
解决方案
网上搜了一圈都是收费文章#xff0c;什么时候开源精神都已经被xxxx用来中间商赚差价了嘛#x…问题描述
在graphicview中拖拽控件从A位置到B位置但是从B位置再次拖拽控件的时候控件依旧从A位置出发与鼠标不处于同一位置。
解决方案
网上搜了一圈都是收费文章什么时候开源精神都已经被xxxx用来中间商赚差价了嘛别人收费我免费一起进步才不累
class RectItem(QtWidgets.QGraphicsRectItem):def __init__(self, *args):super().__init__(*args)self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)self.drag_start_pos Nonedef mousePressEvent(self, event):if event.button() QtCore.Qt.LeftButton:self.drag_start_pos event.pos() # 记录鼠标点击位置super().mousePressEvent(event)def mouseMoveEvent(self, event):if event.buttons() QtCore.Qt.LeftButton:if self.drag_start_pos is not None:offset event.pos() - self.drag_start_pos # 计算鼠标拖动的偏移量new_pos self.pos() offset # 计算新的控件位置self.setPos(new_pos) # 更新控件位置super().mouseMoveEvent(event)def mouseReleaseEvent(self, event):if event.button() QtCore.Qt.LeftButton:self.drag_start_pos Nonesuper().mouseReleaseEvent(event)知识点
控件位置的更新需要用到鼠标的位移控件位置拖动之后需要通过代码更新位置
本文为作者原创转载需注明出处