本文整理匯總了Python中MT.getCompatibleSockets方法的典型用法代碼示例。如果您正苦於以下問題:Python MT.getCompatibleSockets方法的具體用法?Python MT.getCompatibleSockets怎麽用?Python MT.getCompatibleSockets使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類MT
的用法示例。
在下文中一共展示了MT.getCompatibleSockets方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: dropEvent
# 需要導入模塊: import MT [as 別名]
# 或者: from MT import getCompatibleSockets [as 別名]
def dropEvent(self, event):
nodeLabel = str(event.mimeData().text())
event.mimeData().setText("")
self.drop = False
if nodeLabel == "":
return
_node = MT.createNode(nodeLabel)
if _node is not None:
self.scene().space.addNode(_node)
scenePos = self.mapToScene(event.pos())
nw = NodeDesigner.width
nh = NodeDesigner.height
_node.pos = (scenePos.x() - nw/2, scenePos.y() - nh/2)
#link it
#find sockets this corresponds to
insocket = None
for socket in self.start.data.insockets:
if (socket.connected is not None
and socket.connected.node.ptr == self.end.data.ptr):
insocket = socket
break
out = insocket.connected
#find new matching insocket and link
insockets = MT.getCompatibleSockets(out, node_)
if len(insockets) == 1:
insockets[0].connected = out
else:
menu = QMenu()
for socket in insockets:
action = menu.addAction(socket.name)
def connect():
socket.connected = out
action.triggered.connect(connect)
menu.exec_(event.screenPos())
outsockets = list(filter(lambda o: MT.isCompatible(insocket, o), _node.outsockets))
if len(outsockets) == 1:
insocket.connected = outsockets[0]
else:
menu = QMenu()
for socket in outsockets:
action = menu.addAction(socket.name)
def connect():
insocket.connected = socket
action.triggered.connect(connect)
menu.exec_(event.screenPos())