def paint(self, painter, option, widget):
if not self.source() or not self.dest():
return
# Draw the line itself.
if self.ColorOnlySelectedNodesFlag:
if not(self.ColorEdgesFlag):
return
line = QtCore.QLineF(self.sourcePoint, self.destPoint)
# Should FIX the thickness values!!! fix me
painter.save()
"""
Painting the edge colors based on various factors
Not painting the edges if they are below certain threshold
Painting the edges to be black or just based on their colors
Painting highlighted colormaps
edge Thickness is a function of the weight of the edges
drawing z values so that they do not overalpp with others
"""
if self.ForCommunities:
painter.setPen(QtGui.QPen(self.communtiyColor1 ,self.communityWeight , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
painter.drawLine(line)
else:
if self.ColorMap:
if self.EdgeThreshold < self.weight:
if not(self.ColorEdgesFlag):
self.setZValue(1)
self.EdgeColor.setAlpha(70)
painter.setPen(QtGui.QPen(self.EdgeColor ,self.edgeThickness , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
painter.drawLine(line)
else:
self.setZValue(2)
if not(self.HighlightedColorMap):
# pointer to green
painter.setPen(QtGui.QPen(QtCore.Qt.darkGreen, self.edgeThickness , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
else:
self.EdgeColor.setAlpha(255)
painter.setPen(QtGui.QPen(self.EdgeColor, self.thickHighlightedEdges , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
painter.drawLine(line)
else:
if self.EdgeThreshold < self.weight:
if not(self.ColorEdgesFlag):
self.setZValue(1)
painter.setPen(QtGui.QPen(self.EdgeColor ,self.edgeThickness , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
painter.drawLine(line)
else:
self.setZValue(2)
if not(self.HighlightedColorMap):
painter.setPen(QtGui.QPen(QtCore.Qt.darkGreen, self.edgeThickness , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
else:
painter.setPen(QtGui.QPen(self.EdgeColor, self.thickHighlightedEdges , QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
painter.drawLine(line)
painter.restore()
评论列表
文章目录