def _drawSelectionOverlay(self, painter, option): # Draw the selection if option.rect.width() > 0: selectionPen = QtGui.QPen(self.__colorInvalid) selectionPen.setWidth(0) painter.setPen(selectionPen) painter.setBrush(self.__brushSelected) painter.drawRect(option.rect)
def __paintTickmarks(self, painter): tickExtent = self.__getTickAreaExtent() tickHeight = tickExtent.height() / 8 pen = QtGui.QPen(self.palette().window().color()) painter.setPen(pen) # Draw the baseline painter.drawLine(tickExtent.left(), 0, tickExtent.right(), 0) tickArea = self.__getTickArea(self.__frameRange[0]) if tickArea.width() >= 5: for frame in range(self.__frameRange[0], self.__frameRange[1] + 1, 1): xPos = self.__getTickArea(frame).left() painter.drawLine(xPos, -tickHeight, xPos, 0)
def paintEvent(self, event): """Called when the widget is being redrawn @type event: QEvent @param event: The draw event""" assert threading.currentThread().getName() == "MainThread" self.__colorsLock.lockForWrite() try: if not self.__colors: return colors = self.__colors finally: self.__colorsLock.unlock() painter = QtGui.QPainter(self) painter.save() try: rect = self.contentsRect() # Number of pixels per job ratio = float(rect.height())/len(colors) # How far down the slider is shift = self.__sourceTree.verticalScrollBar().value() * ratio # Length not covered by the slider offPage = self.__sourceTree.verticalScrollBar().maximum() * ratio painter.drawPixmap(self.contentsRect(), self.__background, self.__background.rect()) # Draw the slider pen = QtGui.QPen(self.__colorInvalid) pen.setWidth(0) painter.setPen(pen) painter.setBrush(self.__brushPattern) painter.drawRect(rect.adjusted(2, shift, -2, -offPage + shift)) finally: painter.restore() painter.end() del painter
RGB_FRAME_STATE = { opencue.api.job_pb2.SUCCEEDED: QtGui.QColor(55, 200, 55), opencue.api.job_pb2.RUNNING: QtGui.QColor(200, 200, 55), opencue.api.job_pb2.WAITING: QtGui.QColor(135, 207, 235), opencue.api.job_pb2.DEPEND: QtGui.QColor(160, 32, 240), opencue.api.job_pb2.DEAD: QtGui.QColor(255, 0, 0), opencue.api.job_pb2.EATEN: QtGui.QColor(150, 0, 0) } # This controls display order FRAME_STATES = (opencue.api.job_pb2.SUCCEEDED, opencue.api.job_pb2.RUNNING, opencue.api.job_pb2.WAITING, opencue.api.job_pb2.DEPEND, opencue.api.job_pb2.DEAD, opencue.api.job_pb2.EATEN) NO_PEN = QtGui.QPen(QtCore.Qt.NoPen) NO_BRUSH = QtGui.QBrush(QtCore.Qt.NoBrush) class AbstractDelegate(QtWidgets.QItemDelegate): """Handles drawing of items for the TreeWidget. Provides special handling for selected jobs in order to still display background color.""" __colorInvalid = QtGui.QColor() __brushSelected = QtGui.QBrush(QtCore.Qt.Dense4Pattern) __colorUsed = QtGui.QColor(255, 0, 0) __colorFree = QtGui.QColor(0, 255, 0) def __init__(self, parent, jobProgressBarColumn=None, *args): QtWidgets.QItemDelegate.__init__(self, parent, *args) def paint(self, painter, option, index):