Newer
Older

Felix Goding
committed
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
QStatusBar, QMenuBar, QLineEdit, QPushButton, QSlider, QScrollArea, QVBoxLayout,\
QHBoxLayout, QDockWidget, QToolBar, QMenu, QLayout, QSizePolicy, QListWidget, QListWidgetItem,\
QGraphicsLineItem, QGraphicsWidget
from PyQt5.QtCore import Qt, QSize, QLineF, QPoint, QRectF
from PyQt5.QtGui import QIcon, QFont, QPainter, QPen
class Arrow(QGraphicsLineItem):
def __init__(self, source, destination, window, parent=None):
super(Arrow, self).__init__(parent)
self.source = source
self.destination = destination
self._window = window
self.moveLine()
self.source.moved.connect(self.moveLine)
self.destination.moved.connect(self.moveLine)
def contextMenuEvent(self, event):
menu = QMenu()
menu.addAction("Delete", self.remove)
menu.exec_(self.cursor().pos())
def remove(self):
self._window.scene.removeItem(self)
self._window.signalList.remove(self)
def moveLine(self):
self.setPen(QPen(Qt.black, 3))

Adam Jakobsson
committed
self.setLine(QLineF(self.source.operation.x()+self.source.x()+14,\
self.source.operation.y()+self.source.y()+7.5,\
self.destination.operation.x()+self.destination.x(),\
self.destination.operation.y()+self.destination.y()+7.5))