def itemChange(self, change, value): if change == QGraphicsItem.ItemPositionHasChanged: for lineID in interface.GetAllLineByNode(self.m_NodeID): oLineUI = GetUIMgr().GetLineUI(lineID) if oLineUI: oLineUI.UpdatePosition() return super(CNodeUI, self).itemChange(change, value)
def ChangeSelectNode(self, graphicID, nodeID): """添加一个选中的节点""" lst = self.GetSelectNode(graphicID) oNodeUI = GetUIMgr().GetNodeUI(nodeID) if nodeID in lst: oNodeUI.SetUnpressStyle() lst.remove(nodeID) else: oNodeUI.SetPressStyle() lst.append(nodeID)
def S_FocusNode(self, graphicID, nodeID): if self.m_GraphicID != graphicID: return bpID = interface.GetBPIDByGraphicID(graphicID) GetSignal().UI_FOCUS_GRAPHIC.emit(bpID, graphicID) pos = interface.GetNodeAttr(nodeID, bddefine.NodeAttrName.POSITION) x, y = pos[0], pos[1] oNodeUI = GetUIMgr().GetNodeUI(nodeID) if oNodeUI: x += oNodeUI.size().width() / 2 y += oNodeUI.size().height() / 2 point = QPointF(x, y) self.centerOn(point) GetStatusMgr().SelectOneNode(graphicID, nodeID)
def UpdatePosition(self): startPinUI = GetUIMgr().GetPinBtnUI(self.m_StartPinID) nodeID = interface.GetNodeIDByPinID(self.m_StartPinID) nodeUI = GetUIMgr().GetNodeUI(nodeID) if startPinUI: self.m_StartPoint = startPinUI.GetScenePos() if self.m_EndPinID: endPinUI = GetUIMgr().GetPinBtnUI(self.m_EndPinID) self.m_EndPoint = endPinUI.GetScenePos() else: self.m_EndPoint = nodeUI.scene().GetMouseScenePos(QCursor.pos()) self.prepareGeometryChange() self.RecalculateShapeAndBount()
def __init__(self, nodeID, parent=None): super(CNodeUI, self).__init__(parent) self.m_NodeID = nodeID self.m_StartPos = None self.m_IsNodeMove = False # 是否节点有拖动 self.m_NodeWidget = CNodeWidget(nodeID) self.InitUI() GetUIMgr().AddNodeUI(nodeID, self)
def __init__(self, pinID, parent=None): super(CTypeButton, self).__init__(parent) self.m_PinID = pinID self.m_NodeID = interface.GetNodeIDByPinID(pinID) self.m_GraphicID = interface.GetGraphicIDByNodeID(self.m_NodeID) self.m_IsInputPin = interface.IsInputPin(pinID) self.m_Center = None self._InitUI() GetUIMgr().AddPinBtnUI(pinID, self)
def __init__(self, lineID=-1, parent=None): super(CLineUI, self).__init__(parent) self.m_LineID = lineID self.setZValue(-1) self.m_StartPinID = None self.m_EndPinID = None self.m_StartPoint = None self.m_EndPoint = None self.m_PenColor = Qt.white self.m_BakColor = Qt.white self._InitUI() if lineID != -1: # -1为临时连线 GetUIMgr().AddLineUI(lineID, self)
def __init__(self, pinID, parent=None): super(CPinUI, self).__init__(parent) self.m_PinID = pinID self.m_NodeID = interface.GetNodeIDByPinID(pinID) self.m_GraphicID = interface.GetGraphicIDByNodeID(self.m_NodeID) self.m_Btn = None self.m_Label = None self.m_HLayout = None self.m_DefaultWidget = None # 默认值控件 self._InitUI() self.SetIcon() self.SetText() self.ShowDefaultWidget() GetUIMgr().AddPinUI(pinID, self)
def SelectOneNode(self, graphicID, nodeID): """选中一个节点""" for nid in self.GetSelectNode(graphicID): if nid == nodeID: continue oNodeUI = GetUIMgr().GetNodeUI(nid) oNodeUI.SetUnpressStyle() self.m_SelectNode[graphicID] = [nodeID] oNodeUI = GetUIMgr().GetNodeUI(nodeID) oNodeUI.SetPressStyle()
def GetScenePos(self): ePos = QPoint(*self.GetCenter()) nodeUI = GetUIMgr().GetNodeUI(self.m_NodeID) nPos = self.mapTo(nodeUI.m_NodeWidget, ePos) sPos = nodeUI.mapToScene(nPos) return sPos
def _DelNodeUI(self, nodeID): GetStatusMgr().DelSelectNode(self.m_GraphicID, nodeID) oNodeUI = GetUIMgr().GetNodeUI(nodeID) if oNodeUI: self.removeItem(oNodeUI)
def SetNodeMove(self, offpos): for nodeID in GetStatusMgr().GetSelectNode(self.m_GraphicID): oNodeUI = GetUIMgr().GetNodeUI(nodeID) oNodeUI.SetMouseMovePos(offpos)
def S_OnDelLineUI(self, graphicID, lineID): if graphicID == self.m_GraphicID: oLineUI = GetUIMgr().GetLineUI(lineID) if oLineUI: self.removeItem(oLineUI)
def __del__(self): if self.m_LineID == -1: return GetUIMgr().DelLineUI(self.m_LineID)
def __del__(self): GetUIMgr().DelNodeUI(self.m_NodeID)
def ClearNode(self, graphicID): """清除节点选中状态""" for nid in self.GetSelectNode(graphicID): oNodeUI = GetUIMgr().GetNodeUI(nid) oNodeUI.SetUnpressStyle() self.m_SelectNode[graphicID] = []
def __del__(self): GetUIMgr().DelDetailUI(self.m_BPID)
def __del__(self): GetUIMgr().DelPinUI(self.m_PinID)
def DelSelectNode(self, graphicID, nodeID): lst = self.GetSelectNode(graphicID) oNodeUI = GetUIMgr().GetNodeUI(nodeID) oNodeUI.SetUnpressStyle() if nodeID in lst: lst.remove(nodeID)
def mouseDoubleClickEvent(self, event): oItem = self.currentItem() _, ID = oItem.GetInfo() oDetailUI = GetUIMgr().GetDetailUI(self.m_BPID) if oDetailUI: oDetailUI.SetVarWidget(ID)
def __init__(self, bpID, parent=None): super(CDetailUI, self).__init__(parent) self.m_BPID = bpID self.m_Box = QtWidgets.QVBoxLayout(self) self.m_DetaiWidget = None GetUIMgr().AddDetailUI(self.m_BPID, self)