def paintEvent(self, event): painter = QtWidgets.QPainter(self) w = self.width() h = self.height() # background painter.setPen(QtCore.Qt.gray) painter.setBrush(QtCore.Qt.lightGray) painter.drawRect(2, 2, w - 4, h - 4) # range bar painter.setPen(QtCore.Qt.darkGray) painter.setBrush(QtCore.Qt.darkGray) painter.drawRect(5, h - self.display_max - 1, w - 10, self.display_max - self.display_min + 1) # min & max tabs painter.setPen(QtCore.Qt.black) painter.setBrush(QtCore.Qt.gray) painter.drawRect(1, h - self.display_max - self.bar_width - 1, w - 2, self.bar_width) painter.setPen(QtCore.Qt.black) painter.setBrush(QtCore.Qt.gray) painter.drawRect(1, h - self.display_min - 1, w - 2, self.bar_width)
def lineAreaPaintEvent(self, event): # Draw gutter area painter = QtWidgets.QPainter(self.lineArea) painter.fillRect(event.rect(), QtGui.QColor('#EEEEEE')) # Match editor font painter.setFont(self.font()) # Calculate geometry firstBlock = self.firstVisibleBlock() blockNumber = firstBlock.blockNumber() top = self.blockBoundingGeometry(firstBlock).\ translated(self.contentOffset()).top() bottom = top + self.blockBoundingRect(firstBlock).height() # Draw line numbers block = firstBlock while block.isValid() and top <= event.rect().bottom(): if block.isVisible() and bottom >= event.rect().top(): num = str(blockNumber + 1) painter.setPen(QtCore.Qt.black) painter.drawText(3, top, self.lineArea.width(), \ self.fontMetrics().height(), \ QtCore.Qt.AlignLeft, num) # Increment block = block.next() top = bottom bottom = top + self.blockBoundingRect(block).height() blockNumber = blockNumber + 1
def columnLinePaintEvent(self, event): if self.enableColumnLine: # Repaint on top first self.update() # Draw column line area painter = QtWidgets.QPainter(self.columnLine) color = QtGui.QColor("#000000") color.setAlpha(80) painter.fillRect(event.rect(), color)
def mouseMoveEvent(self, e): if e.buttons() == QtCore.Qt.LeftButton: mimeData = QtCore.QMimeData() mimeData.setText('%d,%d' % (e.x(), e.y())) # show the ghost image while dragging pixmap = QtWidgets.QPixmap.grabWidget(self) painter = QtWidgets.QPainter(pixmap) painter.fillRect(pixmap.rect(), QtWidgets.QColor(0, 0, 0, 127)) painter.end() drag = QtWidgets.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(e.pos()) drag.exec_(QtCore.Qt.MoveAction)