def paint(self, painter, option, index): if index.row() != 0: topLeft = option.rect.topLeft() topRight = option.rect.topRight() bottomLeft = option.rect.bottomLeft() bottomRight = option.rect.bottomRight() painter.drawLine(topLeft,topRight) #painter.drawLine(bottomLeft,bottomRight) QItemDelegate.paint(self, painter, option, index)
def paint(self, painter, option, index): option.palette.setColor( QPalette.Highlight, QColor(index.data(Qt.BackgroundRole)).darker(107)) option.palette.setColor( QPalette.HighlightedText, QColor(index.data(Qt.ForegroundRole)).darker(115)) QItemDelegate.paint(self, painter, option, index) if option.showDecorationSelected and \ (option.state & QStyle.State_Selected): painter.drawRect(option.rect)
def paint(self, painter, option, index): if index.column() != 0: QItemDelegate.paint(self, painter, option, index) return painter.fillRect(option.rect, option.palette.brush(QPalette.Base)) painter.setPen(QPen(option.palette.color(QPalette.Text))) painter.drawText(option.rect.adjusted(4, 4, -4, -4), Qt.TextShowMnemonic | Qt.AlignLeft | Qt.AlignVCenter, index.data().toString())
def paint(self, painter, option, index): option.palette.setColor( QPalette.Highlight,QColor( index.data(Qt.BackgroundRole)).darker(107)) option.palette.setColor( QPalette.HighlightedText,QColor( index.data(Qt.ForegroundRole)).darker(115)) QItemDelegate.paint(self, painter, option, index) if option.showDecorationSelected and \ (option.state & QStyle.State_Selected): painter.drawRect(option.rect)
def paint (self, painter, option, index): if not (QStyle.State_Selected & option.state): r = QRect(option.rect) r.setX(0) # test if item/device is in use if index.data(Qt.UserRole).toBool(): painter.setBrush(QColor(255, 0, 0, 32)) else: painter.setBrush(QColor(0, 255, 0, 128)) painter.setPen(Qt.lightGray) painter.drawRect(r) QItemDelegate.paint(self, painter, option, index)
def paint(self,painter,option,index): if index.column() == 1: progress = int(index.model().data(index, Qt.DisplayRole)) progressBarOption = QStyleOptionProgressBarV2() progressBarOption.state = QStyle.State_Enabled progressBarOption.direction = QApplication.layoutDirection() progressBarOption.rect = option.rect progressBarOption.fontMetrics = QApplication.fontMetrics() progressBarOption.textVisible = True progressBarOption.textAlignment = Qt.AlignCenter progressBarOption.minimum = 0 row = index.row() maximum = index.model().record(row).value('size') if maximum == '未知': progressBarOption.maximum = 10000000 progressBarOption.text = '0%' progressBarOption.progress = 0 else: progressBarOption.maximum = int(maximum) progressBarOption.progress = progress ratio = int(progress*100/int(maximum)) progressBarOption.text = '%s'%ratio+'%' QApplication.style().drawControl(QStyle.CE_ProgressBar,progressBarOption,painter) elif index.column() == 2: if index.model().data(index) != '未知': length = int(index.model().data(index, Qt.EditRole)) lengthMB = length/(1024*1024) size = round(lengthMB, 1) text = '%s'%size+'M' QApplication.style().drawItemText(painter, option.rect, Qt.AlignLeft and Qt.AlignVCenter, QApplication.palette(), True, text) else: return QItemDelegate.paint(self,painter,option,index) elif index.column() == 3 : if index.model().data(index) not in ["已完成", "已取消", "等待", "已暂停", "出错"]: remainSeconds = float(index.model().data(index)) hours = int(remainSeconds/3600) minutes = int((remainSeconds%3600)/60) seconds = round((remainSeconds)%3600%60, 1) if remainSeconds >= 3600: remainTime = '%sh%sm%ss'%(hours, minutes, int(seconds)) elif remainSeconds < 3600 and remainSeconds >= 60: remainTime = '%sm%ss'%(minutes, int(seconds)) else: remainTime = '%ss'%seconds text = remainTime QApplication.style().drawItemText(painter, option.rect, Qt.AlignLeft and Qt.AlignVCenter, QApplication.palette(), True, text) else: return QItemDelegate.paint(self,painter,option,index) else: return QItemDelegate.paint(self,painter,option,index)
def paint(self, painter, option, index): """ Draw a button-style on root items """ model = index.model() assert model if not model.parent(index).isValid(): # this is a top-level item. buttonOption = QStyleOptionButton() buttonOption.state = option.state buttonOption.state &= ~QStyle.State_HasFocus buttonOption.rect = option.rect buttonOption.palette = option.palette buttonOption.features = QStyleOptionButton.None self.m_view.style().drawControl(QStyle.CE_PushButton, buttonOption, painter, self.m_view) branchOption = QStyleOption() i = 15 ### hardcoded in qcommonstyle.cpp r = option.rect branchOption.rect = QRect(r.left() + i/2, r.top() + (r.height() - i)/2, i, i) branchOption.palette = option.palette # branchOption.state = QStyle.State_Children if self.m_view.isExpanded(index): branchOption.state |= QStyle.State_Open self.m_view.style().drawPrimitive(QStyle.PE_IndicatorBranch, branchOption, painter, self.m_view) # draw text textrect = QRect(r.left() + i*2, r.top(), r.width() - ((5*i)/2), r.height()) text = self.elidedText(option.fontMetrics, textrect.width(), Qt.ElideMiddle, model.data(index, Qt.DisplayRole).toString()) self.m_view.style().drawItemText(painter, textrect,Qt.AlignLeft|Qt.AlignVCenter, option.palette, self.m_view.isEnabled(), text) icon_variant = index.data(Qt.DecorationRole) icon = QIcon(icon_variant) self.m_view.style().drawItemPixmap( painter, option.rect, Qt.AlignLeft, icon.pixmap(icon.actualSize(QSize(20 ,20))) ) else: QItemDelegate.paint(self, painter, option, index)
def paint(self, painter, option, index): data = index.model().data(index, Qt.UserRole) if data.isValid() and data.toPyObject() is not None: data = data.toPyObject() painter.save() rect = option.rect rect.adjust(+5, 0, -5, 0) pen = data painter.setPen(pen) middle = (rect.bottom() + rect.top()) / 2 painter.drawLine(rect.left(), middle, rect.right(), middle) painter.restore() else: QItemDelegate.paint(self, painter, option, index) painter.drawLine(rect.left(), middle, rect.right(), middle) painter.restore()
def paint(self, painter, option, index): """ Framework hook to paint an editor. @param painter QPainter instance @param option QStyleOptionViewItem instance @param index QModelIndex instance of the item for the editor widget @return None """ if index.column() not in self.columns: return QItemDelegate.paint(self, painter, option, index)
def paint(self, painter, option, index): if index.column() in (SRC_ADDR, DST_ADDR): text = index.model().data(index).toString() palette = QApplication.palette() document = QTextDocument() document.setDefaultFont(option.font) if option.state & QStyle.State_Selected: document.setHtml("<font color=%s>%s</font>" % (palette.highlightedText().color().name(), text)) color = palette.highlight().color() else: document.setHtml(text) color = QColor(index.model().data(index, Qt.BackgroundColorRole)) #document.setPageSize(option.rect.size()) painter.save() painter.fillRect(option.rect, color) painter.translate(option.rect.x(), option.rect.y()) document.drawContents(painter) painter.restore() else: QItemDelegate.paint(self, painter, option, index)
def _paintRecognitionCardsInBrowser(statusDelegateSelf, painter, option, index): card = statusDelegateSelf.model.getCard(index) note = card.note() if _isRecognitionNote(note): brush = QBrush(QColor(BROWSER_COLOR_RECOGNITION)) painter.save() painter.fillRect(option.rect, brush) painter.restore() return QItemDelegate.paint(statusDelegateSelf, painter, option, index)
def paint(self, painter, option, index): """custom painter for progress state """ if index.column() == 1: # get value progress = index.model().data(index,Qt.DisplayRole) # calculate where to put the painted rect fullRect = option.rect center = fullRect.center() newRect = QRectF() newRect.setTop( center.y() - 5 ) newRect.setBottom( center.y() + 5 ) newRect.setLeft( center.x() - 10 ) newRect.setRight( center.x() + 10 ) color = self._getColorForProgress(progress) # paint painter.save() painter.fillRect(newRect, color) painter.translate(option.rect.x(), option.rect.y()+5) painter.restore() else: QItemDelegate.paint(self,painter,option,index)
def paint(self, painter, option, index): palette = option.palette color_select = palette.brush(QPalette.Highlight) if not index.model().isValid(index): palette.setBrush(QPalette.Highlight, QBrush(QColor(170,0,255))) return QItemDelegate.paint(self, painter, option, index)
def paint(self, painter, option, index): delegate = self.delegates.get(index.column()) if delegate is not None: delegate.paint(painter, option, index) else: QItemDelegate.paint(self, painter, option, index)
def paint(self, painter, option, index): palette = option.palette color_select = palette.brush(QPalette.Highlight) if not index.model().isValid(index): palette.setBrush(QPalette.Highlight, QBrush(QColor(170, 0, 255))) return QItemDelegate.paint(self, painter, option, index)