本文整理汇总了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())