def add_output(self, name='output', multi_port=False, display_name=True, locked=False, painter_func=None): """ Adds a port qgraphics item into the node with the "port_type" set as OUT_PORT. Args: name (str): name for the port. multi_port (bool): allow multiple connections. display_name (bool): display the port name. locked (bool): locked state. painter_func (function): custom paint function. Returns: PortItem: output port qgraphics item. """ if painter_func: port = CustomPortItem(self, painter_func) else: port = PortItem(self) port.name = name port.port_type = PortTypeEnum.OUT.value port.multi_connection = multi_port port.display_name = display_name port.locked = locked return self._add_port(port)
def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton: start = PortItem().boundingRect().width() end = self.boundingRect().width() - start x_pos = event.pos().x() if not start <= x_pos <= end: event.ignore() super(NodeItem, self).mousePressEvent(event)
def add_output(self, name='output', multi_port=False, display_name=True): """ Args: name (str): name for the port. multi_port (bool): allow multiple connections. display_name (bool): display the port name. Returns: PortItem: output item widget """ port = PortItem(self) port.name = name port.port_type = OUT_PORT port.multi_connection = multi_port port.display_name = display_name text = QtWidgets.QGraphicsTextItem(port.name, self) text.font().setPointSize(8) text.setFont(text.font()) text.setVisible(display_name) self._output_items[port] = text if self.scene(): self.post_init() return port