def paintBackground(self, painter, option, index): """ Draw the background for the item. :type painter: QtWidgets.QPainter :type option: QtWidgets.QStyleOptionViewItem :type index: QtCore.QModelIndex :rtype: None """ isSelected = option.state & QtWidgets.QStyle.State_Selected isMouseOver = option.state & QtWidgets.QStyle.State_MouseOver painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) visualRect = self.visualRect(option) if isSelected: color = self.backgroundSelectedColor() painter.setBrush(QtGui.QBrush(color)) elif isMouseOver: color = self.backgroundHoverColor() painter.setBrush(QtGui.QBrush(color)) else: color = self.backgroundColor() painter.setBrush(QtGui.QBrush(color)) painter.drawRect(visualRect)
def paintBackground(self, painter, option, index): """ Draw the background for the item. :type painter: QtWidgets.QPainter :type option: QtWidgets.QStyleOptionViewItem :type index: QtCore.QModelIndex :rtype: None """ studioqt.CombinedWidgetItem.paintBackground(self, painter, option, index) painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) visualRect = self.visualRect(option) textWidth = self.textWidth(0) padding = (20 * self.dpi()) visualRect.setX(textWidth + padding) visualRect.setY(visualRect.y() + (visualRect.height() / 2)) visualRect.setHeight(2 * self.dpi()) visualRect.setWidth(visualRect.width() - padding) color = QtGui.QColor(250, 250, 250, 20) painter.setBrush(QtGui.QBrush(color)) painter.drawRect(visualRect)
def paintEvent(self, event): """ Triggered on frame changed. :type event: QtCore.QEvent :rtype: None """ QtWidgets.QToolButton.paintEvent(self, event) painter = QtGui.QPainter() painter.begin(self) if self.currentFilename(): r = event.rect() playheadHeight = self.playheadHeight() playheadPosition = self._imageSequence.percent() * r.width() - 1 x = r.x() y = self.height() - playheadHeight painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QBrush(self.DEFAULT_PLAYHEAD_COLOR)) painter.drawRect(x, y, playheadPosition, playheadHeight) painter.end()
def paintBackground(self, painter, option, index): """ Draw the background for the item. :type painter: QtWidgets.QPainter :type option: QtWidgets.QStyleOptionViewItem :type index: QtCore.QModelIndex :rtype: None """ super(GroupItem, self).paintBackground(painter, option, index) painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) visualRect = self.visualRect(option) text = self.name() metrics = QtGui.QFontMetricsF(self._font) textWidth = metrics.width(text) padding = (25 * self.dpi()) visualRect.setX(textWidth + padding) visualRect.setY(visualRect.y() + (visualRect.height() / 2)) visualRect.setHeight(2 * self.dpi()) visualRect.setWidth(visualRect.width() - padding) color = QtGui.QColor(self.textColor().red(), self.textColor().green(), self.textColor().blue(), 10) painter.setBrush(QtGui.QBrush(color)) painter.drawRect(visualRect)
def createRubberBand(self): """ Create a new instance of the selection rubber band. :rtype: QtWidgets.QRubberBand """ rubberBand = QtWidgets.QRubberBand(QtWidgets.QRubberBand.Rectangle, self) palette = QtGui.QPalette() color = self.rubberBandColor() palette.setBrush(QtGui.QPalette.Highlight, QtGui.QBrush(color)) rubberBand.setPalette(palette) return rubberBand
def setTextColor(self, color): """ Set the foreground color to the given color :type color: QtGui.QColor or str :rtype: None """ if isinstance(color, QtGui.QColor): color = studioqt.Color.fromColor(color) elif isinstance(color, basestring): color = studioqt.Color.fromString(color) self._settings["textColor"] = color.toString() brush = QtGui.QBrush() brush.setColor(color) self.setForeground(0, brush)
def drawIconBorder(self, painter, pixmapRect): """ Draw a border around the icon. :type painter: QtWidgets.QPainter :type pixmapRect: QtWidgets.QRect :rtype: None """ pixmapRect = QtCore.QRect(pixmapRect) pixmapRect.setX(pixmapRect.x() - 5) pixmapRect.setY(pixmapRect.y() - 5) pixmapRect.setWidth(pixmapRect.width() + 5) pixmapRect.setHeight(pixmapRect.height() + 5) color = QtGui.QColor(255, 255, 255, 10) painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) painter.setBrush(QtGui.QBrush(color)) painter.drawRect(pixmapRect)
def paintPlayhead(self, painter, option): """ :type painter: QtGui.QPainter :param option: """ if self.imageSequence().currentFilename(): r = self.iconRect(option) c = self.playheadColor() imageSequence = self.imageSequence() painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QBrush(c)) if imageSequence.percent() <= 0: width = 0 elif imageSequence.percent() >= 1: width = r.width() else: width = imageSequence.percent() * r.width() - 1 height = 3 * self.dpi() y = r.y() + r.height() - (height - 1) painter.drawRect(r.x(), y, width, height)
def paintPlayhead(self, painter, option): """ Paint the playhead if the item has an image sequence. :type painter: QtWidgets.QPainter :type option: QtWidgets.QStyleOptionViewItem :rtype: None """ movie = self.imageSequence() if movie and self.underMouse(): count = movie.frameCount() current = movie.currentFrameNumber() if count > 0: percent = float(((count) + current) + 1) / count - 1 else: percent = 0 r = self.iconRect(option) c = self.playheadColor() imageSequence = self.imageSequence() painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QBrush(c)) if percent <= 0: width = 0 elif percent >= 1: width = r.width() else: width = (percent * r.width()) - 1 height = 3 * self.dpi() y = r.y() + r.height() - (height - 1) painter.drawRect(r.x(), y, width, height)