我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用PyQt4.QtGui.QPen()。
def __init__(self, parent=None): '''Create description canvas. :param parent: Abstract CPN element. ''' super(DescriptionCanvas, self).__init__(parent) self.parent = parent self.text = self.parent.uniqueName self.setPen(QtGui.QPen(QtCore.Qt.darkYellow, 1)) self.setBrush(QtGui.QBrush(QtCore.Qt.darkYellow)) self.setFlags(self.ItemIsSelectable | self.ItemIsMovable | self.ItemSendsScenePositionChanges ) self.label = QtGui.QGraphicsTextItem( "%s: %s"%(self.parent.uniqueName, self.parent.name), parent=self ) # self.label.setFlag(self.ItemIsMovable, True) rect = self.label.boundingRect() self.setRect(rect.x() + 30, rect.y() + 20, rect.width(), rect.height()) self.label.setPos(rect.x() + 30, rect.y() + 20) self.label.setZValue(21) self.setZValue(20) self.visibility = False self.setVisibility( self.visibility ) #------------------------------------------------------------------------------------------------
def paint(self, painter, option, index): rowdata = self.model.getrowdata(index.row()) color = QtCore.Qt.white if "status" in rowdata.__dict__: if rowdata.status == "S": color = QtGui.QColor(204, 255, 204) # Light green else: color = QtGui.QColor(255, 204, 204) # Light red painter.save() painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) painter.setBrush(QtGui.QBrush(color)) painter.drawRect(option.rect) painter.restore() QtGui.QItemDelegate.paint(self, painter, option, index)
def drawRect(self, coords=None): self.clear_Rect() self.rect_items = [] color = QtGui.QColor() color.setNamedColor((self.scene().colors['border'])) pen = QtGui.QPen(color, self.scene().line_width) pen.setJoinStyle(QtCore.Qt.RoundJoin) pen.setCapStyle(QtCore.Qt.RoundCap) fromm = self.mapFromLonLat(coords[0]) too = self.mapFromLonLat(coords[1]) self.rect_items.append(QtGui.QGraphicsRectItem(fromm.x(), fromm.y(), too.x() - fromm.x(), too.y() - fromm.y())) self.rect_items[-1].setPen(pen) self.rect_items[-1].setZValue(3) self.scene().addItem(self.rect_items[-1]) if self.scene().center_on_grid: x = fromm.x() + (too.x() - fromm.x()) / 2 y = fromm.y() + (too.y() - fromm.y()) / 2 go_to = QtCore.QPointF(x, y) self.centerOn(go_to) rect = reproject([coords[0].y(), coords[0].y(), coords[1].y(), coords[1].y()], [coords[0].x(), coords[1].x(), coords[1].x(), coords[0].x()]) return '{:0,.0f}'.format(area_of_polygon(rect[0], rect[1])) + ' Km^2'
def drawMany(self): grids = GetMany.getList() if grids is None: return self.clear_Rect() self.rect_items = [] color = QtGui.QColor() color.setNamedColor((self.scene().colors['border'])) pen = QtGui.QPen(color, self.scene().line_width) pen.setJoinStyle(QtCore.Qt.RoundJoin) pen.setCapStyle(QtCore.Qt.RoundCap) for g in range(len(grids)): fromm = self.mapFromLonLat(QtCore.QPointF(grids[g][1], grids[g][0])) too = self.mapFromLonLat(QtCore.QPointF(grids[g][3], grids[g][2])) self.rect_items.append(QtGui.QGraphicsRectItem(fromm.x(), fromm.y(), too.x() - fromm.x(), too.y() - fromm.y())) self.rect_items[-1].setPen(pen) self.rect_items[-1].setZValue(3) self.scene().addItem(self.rect_items[-1]) self.emit(QtCore.SIGNAL('statusmsg'), str(len(grids)) + ' Areas drawn')
def __init__(self, startp=Point(), endp=None, length=60.0, angle=50.0, color=QtCore.Qt.red, pencolor=QtCore.Qt.green, startarrow=True): """ Initialisation of the class. """ self.sc = None super(Arrow, self).__init__() self.startp = QtCore.QPointF(startp.x, -startp.y) self.endp = endp self.length = length self.angle = angle self.startarrow = startarrow self.allwaysshow = False self.arrowHead = QPolygonF() self.setFlag(QGraphicsItem.ItemIsSelectable, False) self.myColor = color self.pen = QPen(pencolor, 1, QtCore.Qt.SolidLine) self.pen.setCosmetic(True) self.arrowSize = 8.0
def __init__(self, text='S', startp=Point(x=0.0, y=0.0),): """ Initialisation of the class. """ QGraphicsItem.__init__(self) self.setFlag(QGraphicsItem.ItemIsSelectable, False) self.text = text self.sc = 1.0 self.startp = QtCore.QPointF(startp.x, -startp.y) pencolor = QColor(0, 200, 255) self.brush = QColor(0, 100, 255) self.pen = QPen(pencolor, 1, QtCore.Qt.SolidLine) self.pen.setCosmetic(True) self.path = QPainterPath() self.path.addText(QtCore.QPointF(0, 0), QFont("Arial", 10/self.sc), self.text)
def draw_scalebar(self, image): if self.window.display_settings_dialog.scalebar_groupbox.isChecked(): pixelsize = self.window.display_settings_dialog.pixelsize.value() scalebar = self.window.display_settings_dialog.scalebar.value() length_camerapxl = scalebar / pixelsize length_displaypxl = int(round(self.width() * length_camerapxl / self.viewport_width())) height = max(int(round(0.15 * length_displaypxl)), 1) painter = QtGui.QPainter(image) painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) painter.setBrush(QtGui.QBrush(QtGui.QColor('white'))) x = self.width() - length_displaypxl - 35 y = self.height() - height - 20 painter.drawRect(x, y, length_displaypxl + 0, height + 0) if self.window.display_settings_dialog.scalebar_text.isChecked(): font = painter.font() font.setPixelSize(20) painter.setFont(font) painter.setPen(QtGui.QColor('white')) text_spacer = 40 text_width = length_displaypxl +2*text_spacer text_height = text_spacer painter.drawText(x-text_spacer, y-25, text_width, text_height, QtCore.Qt.AlignHCenter,str(scalebar)+' nm') return image
def __init__(self, note, text=False): QtGui.QGraphicsItem.__init__(self, parent=None) self.note = note self.note_name = NoteNames[note] self.note_short = self.note_name[0].upper() if isinstance(text, bool): self.note_label = self.note_short if text else '' else: self.note_label = text self.setAcceptHoverEvents(True) self.base_height = 100 self.base_x = 0 self.base_width = 20 self.border_pen = QtGui.QPen(QtCore.Qt.darkGray, 1) self.pressed = 2 self.shadow = 5 self.current = self
def changeEvent(self, event): if not event.type() == QtCore.QEvent.EnabledChange: return state = self.isEnabled() self.start_color = self._start_colors[state] self.end_color = self._end_colors[state] self.dial_bgd = self._dial_bgd_colors[state] self.dial_border = self._dial_border_colors[state] if self.gradient: self.fill_color = self.range_mid_colors[state] if self.center else self.range_full_colors[state] else: self.fill_color = QtGui.QColor(*self.setColor()) self.fgd_color = self._fgd_colors[state] self.fgd_pen = QtGui.QPen(self.fgd_color, self.dial_size/50.) self.cursor_pen = QtGui.QPen(self.fgd_color, self.dial_size/30.) self.dial_color = self._dial_colors[state] self.dial_pen = QtGui.QPen(self.dial_color, self.dial_size/100.) self.update() self.cursor.setEnabled(state)
def __init__(self, main, index, rect, *args, **kwargs): QtGui.QGraphicsWidget.__init__(self, *args, **kwargs) self.main = main self.index = index rect.setTop(-100) rect.setBottom(rect.bottom()+100) self.setGeometry(rect) self.setAcceptHoverEvents(True) self.pen = QtGui.QPen(QtGui.QColor(QtCore.Qt.lightGray)) self.brush = self.bgd_brushes[0] self.index_item = QtGui.QGraphicsTextItem(str(index+1), self) self.index_item.setFlags(self.index_item.ItemIgnoresTransformations) font = self.index_item.font() font.setPointSize(7) self.index_item.setFont(font) self.index_item.setY(90) self.index_item.setTextWidth(20) if (self.index+1) % 8: self.index_item.setVisible(False) else: self.index_item.setX(-16) self.selected = False self.highlight = False
def setWaveTable(self, waveobj_list): self.waveobj_list = waveobj_list self.wavegroup = QtGui.QGraphicsItemGroup() for i, wave_obj in enumerate(waveobj_list): # wave_obj.selected.connect(self.select) wave_obj.preview_path_item.setX(i*128) wave_obj.selected.connect(lambda o, index=i: setattr(self, 'currentWave', index)) self.wavegroup.addToGroup(wave_obj.preview_path_item) rect = wave_obj.preview_rect self.scene().addItem(rect) rect.setX(i*128) rect.setZValue(-10) bounding = self.wavegroup.boundingRect() bounding.setTop(-5) bounding.setBottom(bounding.bottom()+15) bounding_item = QtGui.QGraphicsRectItem(bounding) bounding_item.setPen(QtGui.QPen(QtCore.Qt.NoPen)) self.wavegroup.addToGroup(bounding_item) self.scene().addItem(self.wavegroup) self.setSceneRect(self.wavegroup.boundingRect())
def paintEvent(self, e=None): qp = QtGui.QPainter() qp.begin(self) if self.showPos: # showing arrow (pointerWidget): intended to use for showing the point that user want to see the info # transparent if pre-created with no parent, # don't use because it show up too slow qp.setPen( QtGui.QPen(QtCore.Qt.red,3 ) ) qp.drawLine(0, 0, 20, 20) qp.drawLine(0, 0, 2, 10) qp.drawLine(0, 0, 10, 2 ) else: # showing a tiny square at the select station(s) qp.setBrush(QtCore.Qt.red) qp.drawRect(0,0,self.rect().width(), self.rect().height()) # -1 or the right and bottom lines will be thinner than the rest qp.end() ########################################## ############### CLASS #################### # Author: Lan # Updated: 201410 # CLASS: FileParaDialog - GUI for setting the picture file's size and format
def paintEvent(self, e): qp = QtGui.QPainter() qp.begin(self) pen = QtGui.QPen(QtCore.Qt.blue, 1.7, QtCore.Qt.DashLine) qp.setFont(QtGui.QFont('Decorative', 9)) qp.setPen(pen) #print "paintEvent" index = 0 for lbl in self.canvas.labelPos: if lbl.has_key('y'): indent = 6*(6-len(lbl['text'])) indent = indent if indent>0 else 0 #print "%s => indent=%s" % (lbl['text'], indent) qp.drawText(1+indent, lbl['y']+5, lbl['text']) else: #print "text:'%s' len(lbl)=%s" % (lbl['text'], len(lbl['text'])) qp.drawText(int(lbl['x']-len(lbl['text'])*3.5), self.height()-10, lbl['text']) index += 1 qp.end()
def paintEvent(self, event): # ------------------------------------------------------------------- Painter = QPainter() Painter.begin(self) # ------------------------------------------------------------------- # Draw CROSS-MOUSE-POS if self.DRAW_CROSS: Painter.setPen( QPen( QColor(255,255,255, 255), 1, Qt.DashLine ) ); Painter.drawPolyline( QPoint(self.MOUSE_X-600, self.MOUSE_Y), QPoint( self.MOUSE_X+600, self.MOUSE_Y) ); Painter.drawPolyline( QPoint(self.MOUSE_X, self.MOUSE_Y-400), QPoint( self.MOUSE_X, self.MOUSE_Y+400) ); # ------------------------------------------------------------------- Painter.end(); # ------------------------------------------------------------------- # =======================================================================
def __init__(self, parent = None): '''Create abstract item. :param parent: `gui.DiagramEditor`. Editor to show in. ''' self.parent = parent super(AbstractItem, self).__init__(parent) self.tokens = None self.name = "" self.posCallbacks = [] self.connectorList = [] self.setPen(QtGui.QPen(QtCore.Qt.black, 2)) self.setBrush(QtGui.QBrush(QtCore.Qt.white)) self.setFlags(self.ItemIsSelectable | self.ItemIsMovable | self.ItemSendsScenePositionChanges) self.planeMap = { "northWest":set(), "north":set(), "northEast":set(), "east":set(), "southEast":set(), "south":set(), "southWest":set(), "west":set() } self.connectorMap = { "northWest":[], "north":[], "northEast":[], "east":[], "southEast":[], "south":[], "southWest":[], "west":[] } #------------------------------------------------------------------------------------------------
def __init__(self, parent): '''Create line. :param parent: Parent `model.ArcItem`. ''' super(LineItem, self).__init__(None) self.parent = parent self.setPen(QtGui.QPen(QtCore.Qt.black,2)) self.setFlag(self.ItemIsSelectable, True) #------------------------------------------------------------------------------------------------
def singleInput(self, variableExpression): '''Register a single input arc in the simulator. :param variableExpression: SNAKES Variable or Expression. ''' try: self.editor.mainWindow.simulator.net.add_input( self.srcConnector.parent.uniqueName, self.dstConnector.parent.uniqueName, variableExpression) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.black,2)) except ValueError: errorString = str( "ValueError must contain valid Python Syntax: e.g. x>1, %s" %( sys.exc_info()[1] ) ) item = QtGui.QListWidgetItem( errorString ) item.setTextColor(QtCore.Qt.red) self.editor.mainWindow.logWidget.addItem( item ) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.red,2)) del self return False except SyntaxError: errorString = str( "Expression must contain valid Python Syntax: e.g. x>1, %s" %( sys.exc_info()[1] ) ) item = QtGui.QListWidgetItem( errorString ) item.setTextColor(QtCore.Qt.red) self.editor.mainWindow.logWidget.addItem( item ) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.red,2)) del self return False except snakes.ConstraintError: errorString = str( "ConstraintError: already connected to %s" %(self.dstConnector.parent.name) ) item = QtGui.QListWidgetItem( errorString ) item.setTextColor(QtCore.Qt.red) self.editor.mainWindow.logWidget.addItem( item ) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.red,2)) del self return False return True #------------------------------------------------------------------------------------------------
def singleOutput(self, variableExpression): '''Register a multi input arc in the simulator. :param variableExpression: SNAKES Variable or Expression. ''' try: self.editor.mainWindow.simulator.net.add_output( self.dstConnector.parent.uniqueName, self.srcConnector.parent.uniqueName, variableExpression) if self.replaceExpression is not None: self.dstConnector.parent.replaceExpression = self.replaceExpression self.arcLine.setPen(QtGui.QPen(QtCore.Qt.black,2)) except ValueError: errorString = str( "ValueError: %s" %(sys.exc_info()[1]) ) item = QtGui.QListWidgetItem( errorString ) item.setTextColor(QtCore.Qt.red) self.editor.mainWindow.logWidget.addItem( item ) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.red,2)) del self return False except SyntaxError: errorString = str( "SyntaxError: %s" %(sys.exc_info()[1]) ) item = QtGui.QListWidgetItem( errorString ) item.setTextColor(QtCore.Qt.red) self.editor.mainWindow.logWidget.addItem( item ) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.red,2)) del self return False except snakes.ConstraintError: errorString = str( "ConstraintError: already connected to %s" %(self.dstConnector.parent.name) ) item = QtGui.QListWidgetItem( errorString ) item.setTextColor(QtCore.Qt.red) self.editor.mainWindow.logWidget.addItem( item ) self.arcLine.setPen(QtGui.QPen(QtCore.Qt.red,2)) del self return False return True #------------------------------------------------------------------------------------------------
def initTransition(self, loadFromFile): '''Initialize transition. :param loadFromFile: Flag determining, whether the transition is loaded from file. ''' pos = self.scenePos() self.createItem(self.editor, self.name, nodeType="transition") rect = self.boundingRect() if not self.substitutionTransition: self.guardLabel = QtGui.QGraphicsTextItem(self.guardExpression, self) self.guardLabel.setFlags( self.ItemIsSelectable | self.ItemIsMovable ) self.guardLabel.setPos(pos.x() + rect.width()/2, pos.y() - 20) self.guardLabel.setPlainText( self.guardExpression ) else: if not loadFromFile: self.editor.mainWindow.addSubnetEditor(self.name) self.subnetBorder = QtGui.QGraphicsRectItem( pos.x() - 5, pos.y()-5, rect.width()+9, rect.height()+9, parent=self ) self.subnetBorder.setFlag( self.ItemStacksBehindParent, True ) self.subnetBorder.setPen(QtGui.QPen(QtCore.Qt.black, 2)) self.subnetBorder.setBrush(QtGui.QBrush(QtCore.Qt.white)) self.subnetBorder.setZValue(11) self.guardExpression = "" self.setPos(self.position) self.setZValue(10) self.editor.visualTransitions.append(self) self.editor.diagramScene.addItem(self) #------------------------------------------------------------------------------------------------
def __init__(self, parent): super(LineItem, self).__init__(None) self.parent = parent self.setPen(QtGui.QPen(QtCore.Qt.black,2)) # self.setFlags( self.ItemIsSelectable | self.ItemIsMoveable ) #------------------------------------------------------------------------------------------------ #========================================================================================================================
def paint(self, QPainter, QStyleOptionGraphicsItem, QWidget_widget=None): # setPen pen = QPen() pen.setWidth(5) pen.setJoinStyle(Qt.MiterJoin) #????? QPainter.setPen(pen) # draw line QPainter.drawLine(self.line)
def draw_predictions(file_path, predictions, class_index, score_low, score_high): img = QtGui.QImage(file_path) painter = QtGui.QPainter(img) for i, pred in enumerate(predictions): if class_index > 0 and pred.class_index != class_index: continue if pred.score < score_low or pred.score > score_high: continue class_name = CLASS_NAMES[pred.class_index] x1, y1, x2, y2 = map(int, pred.bbox) # bbox painter.setPen(QtGui.QPen(PRESET_COLORS[pred.class_index], 10.0)) # painter.setPen(QtGui.QPen(QtGui.QColor(0, 116, 217), 10.0)) painter.setBrush(QtGui.QBrush()) painter.drawRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1) # label background rect painter.setPen(QtGui.QPen(PRESET_COLORS[pred.class_index], 2.0)) painter.setBrush(QtGui.QBrush(PRESET_COLORS[pred.class_index])) # painter.setPen(QtGui.QPen(QtGui.QColor(0, 116, 217), 2.0)) # painter.setBrush(QtGui.QBrush(QtGui.QColor(0, 116, 217))) if class_index > 0: painter.drawRect(x1, y1, min(x2 - x1 + 1, 100), 30) else: painter.drawRect(x1, y1, min(x2 - x1 + 1, 200), 30) # label text painter.setPen(QtGui.QPen(QtGui.QColor(255, 255, 255))) painter.setBrush(QtGui.QBrush()) painter.setFont(QtGui.QFont('Arial', 20, QtGui.QFont.Bold)) if class_index > 0: painter.drawText(x1 + 4, y1 + 24, '{:.2f}'.format(pred.score)) else: painter.drawText(x1 + 4, y1 + 24, '{} {:.2f}'.format(class_name, pred.score)) return img
def _setupGrid(self): def do_them(lines, width=self.line_width, grid2=False): for line in lines: color = QtGui.QColor() color.setNamedColor(line.style) pen = QtGui.QPen(color, width) pen.setJoinStyle(QtCore.Qt.RoundJoin) pen.setCapStyle(QtCore.Qt.RoundCap) start = self.mapFromLonLat(QtCore.QPointF(line.coordinates[0][1], line.coordinates[0][0])) for pt in range(1, len(line.coordinates)): end = self.mapFromLonLat(QtCore.QPointF(line.coordinates[pt][1], line.coordinates[pt][0])) ln = QtGui.QGraphicsLineItem(QtCore.QLineF(start, end)) ln.setPen(pen) ln.setZValue(0) self.addItem(ln) if grid2: self._gridGroup2.addToGroup(ln) else: self._gridGroup.addToGroup(ln) start = end return self.lines = Grid() do_them(self.lines.lines) self.grid_lines = len(self.lines.lines) lines = Grid_Boundary() if len(lines.lines) > 0: lines.lines[0].style = self.colors['grid_boundary'] do_them(lines.lines, width=0) if self.existing_grid2: lines2 = Grid(grid2=True) do_them(lines2.lines, grid2=True)
def show_Grid(self): comment = 'Grid Toggled ' if self.view.scene().show_grid: self.view.scene().show_grid = False self.view.scene()._gridGroup.setVisible(False) self.showGrid.setIcon(QtGui.QIcon('blank.png')) comment += 'Off' else: if self.view.scene()._gridGroup is None: self.view.scene()._gridGroup = QtGui.QGraphicsItemGroup() self.view.scene().addItem(self.view.scene()._gridGroup) color = QtGui.QColor() color.setNamedColor((self.view.scene().colors['grid'])) pen = QtGui.QPen(color, self.view.scene().line_width) pen.setJoinStyle(QtCore.Qt.RoundJoin) pen.setCapStyle(QtCore.Qt.RoundCap) for lat in range(90, -90, -10): if lat == 90: continue fromm = self.mapFromLonLat(QtCore.QPointF(-180, lat)) too = self.mapFromLonLat(QtCore.QPointF(180, lat)) item = QtGui.QGraphicsLineItem(fromm.x(), fromm.y(), too.x(), too.y()) item.setPen(pen) item.setZValue(3) self.view.scene()._gridGroup.addToGroup(item) for lon in range(-180, 181, 10): fromm = self.mapFromLonLat(QtCore.QPointF(lon, self.view.scene().map_upper_left[0])) too = self.mapFromLonLat(QtCore.QPointF(lon, self.view.scene().map_lower_right[0])) item = QtGui.QGraphicsLineItem(fromm.x(), fromm.y(), too.x(), too.y()) item.setPen(pen) item.setZValue(3) self.view.scene()._gridGroup.addToGroup(item) self.view.scene().show_grid = True self.view.scene()._gridGroup.setVisible(True) self.showGrid.setIcon(QtGui.QIcon(self.view.scene().check_icon)) comment += 'On' self.view.emit(QtCore.SIGNAL('statusmsg'), comment)
def __init__(self, startItem, endItem, parent=None, scene=None): super(Arrow, self).__init__(parent, scene) self.arrowHead = QtGui.QPolygonF() self.myStartItem = startItem self.myEndItem = endItem self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True) self.myColor = QtCore.Qt.black self.setPen(QtGui.QPen(self.myColor, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin))
def image(self): pixmap = QtGui.QPixmap(250, 250) pixmap.fill(QtCore.Qt.transparent) painter = QtGui.QPainter(pixmap) painter.setPen(QtGui.QPen(QtCore.Qt.black, 8)) painter.translate(125, 125) painter.drawPolyline(self.myPolygon) return pixmap
def mousePressEvent(self, mouseEvent): if (mouseEvent.button() != QtCore.Qt.LeftButton): return if self.myMode == self.InsertItem: item = DiagramItem(self.myItemType, self.myItemMenu) item.setBrush(self.myItemColor) self.addItem(item) item.setPos(mouseEvent.scenePos()) self.itemInserted.emit(item) elif self.myMode == self.InsertLine: self.line = QtGui.QGraphicsLineItem(QtCore.QLineF(mouseEvent.scenePos(), mouseEvent.scenePos())) self.line.setPen(QtGui.QPen(self.myLineColor, 2)) self.addItem(self.line) elif self.myMode == self.InsertText: textItem = DiagramTextItem() textItem.setFont(self.myFont) textItem.setTextInteractionFlags(QtCore.Qt.TextEditorInteraction) textItem.setZValue(1000.0) textItem.lostFocus.connect(self.editorLostFocus) textItem.selectedChange.connect(self.itemSelected) self.addItem(textItem) textItem.setDefaultTextColor(self.myTextColor) textItem.setPos(mouseEvent.scenePos()) self.textInserted.emit(textItem) super(DiagramScene, self).mousePressEvent(mouseEvent)
def paintEvent(self, e): qp = QtGui.QPainter() qp.begin(self) pen = QtGui.QPen(QtGui.QColor(self.pencolor[0], self.pencolor[1], self.pencolor[2]), 4, QtCore.Qt.SolidLine) qp.setPen(pen) qp.drawLine(10, 15, 45, 15) qp.end() #if __name__ == '__main__': # app = QtGui.QApplication(sys.argv) # ex = QColorCellItem() # ex.show() # sys.exit(app.exec_())
def __init__(self, parent=None): super(QStrokeRect, self).__init__(parent) self.strokeWidth = 4 self.setPen(QtGui.QPen(QtGui.QColor(255, 0, 0), 4, QtCore.Qt.SolidLine)) self.setFlags(QtGui.QGraphicsItem.ItemIsSelectable) self.cateid = None
def initUI(self): self.setGeometry(300, 300, 500, 500) self.setWindowTitle('Select by stroke') self.gv = QTestView(self) self.gv.setMouseTracking(True) self.pen = QtGui.QPen(QtGui.QColor(255, 0, 0), 4, QtCore.Qt.SolidLine) self.gv.scene.addRect(QtCore.QRectF(0,0,400,400), self.pen) self.gv.scene.addItem(QStrokeRect(QtCore.QRectF(100,100,100,100))) self.gv.scene.addItem(QStrokeRect(QtCore.QRectF(150,150,100,100)))
def setPen(self, penid): self.pen = QtGui.QPen(QtGui.QColor(int(255*self.cmap[penid][0]), int(255*self.cmap[penid][1]), int(255*self.cmap[penid][2])), self.penwidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin) self.penid = penid
def showBaseRects(self): for rect in self._baseRects: self._lstRect = QStrokeRect(QtCore.QRectF(rect[1], rect[2], rect[3], rect[4])) cateid = int(rect[0]) self._lstRect.setPen(QtGui.QPen(QtGui.QColor(int(255*self.cmap[cateid][0]), int(255*self.cmap[cateid][1]), int(255*self.cmap[cateid][2])), self.penwidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) self._lstRect.cateid = cateid self._lstRect.setStrokeWidth(6) self.scene.addItem(self._lstRect)
def drawBox(self): '''handle errors''' if not self.pixmap: self.showErrMsg('Please choose an image first!') return x, y, w, h = self.line_x.text(), self.line_y.text(), self.line_w.text(),\ self.line_h.text() if not (x.isdigit() and y.isdigit() and w.isdigit() and h.isdigit()): self.showErrMsg('Please input integer!') return x, y, w, h = int(x), int(y), int(w), int(h) if not 0 <= x <= self.pixmap.width(): self.showErrMsg('Value Error', 'x should be an integer between 0 and %d' % self.pixmap.width()) elif not 0 <= y <= self.pixmap.height(): self.showErrMsg('Value Error', 'y should be an integer between 0 and %d' % self.pixmap.height()) elif not 0 <= w <= (self.pixmap.width() - x): self.showErrMsg('Value Error', 'x + w should be an integer between 0 and %d' % self.pixmap.width()) elif not 0 <= h <= (self.pixmap.height() - y): self.showErrMsg('Value Error', 'y + h should be an integer between 0 and %d' % self.pixmap.height()) else: painter = QPainter() painter.begin(self.pixmap) pen = QPen(QtCore.Qt.red, 5, QtCore.Qt.SolidLine) painter.setPen(pen) painter.drawRect(x, y, w, h) painter.end() self.labelImage.setPixmap(self.pixmap)
def drawEvents(self, qp): pen = QtGui.QPen(QtCore.Qt.white, 1, QtCore.Qt.SolidLine) qp.setPen(pen) numOfCals = len(self.eventMasterList) eventWidth = int((self.width()-(60+numOfCals*10))/numOfCals) for counter, cal in enumerate(self.eventMasterList): qp.setBrush(self.colors[counter]) for event in cal: r = QtCore.QRect(60+counter*(eventWidth+10), 25+self.titleHeight+(self.height()-50-self.titleHeight)*event['relStart'], eventWidth, (self.height()-50-self.titleHeight)*event['relHeight']) qp.drawRect(r) qp.drawText(r.left()+5, r.top()+2, r.width()-5, r.height()-2, QtCore.Qt.TextWordWrap, event['summary'])
def paintEvent(self, event): painter = QtGui.QPainter(self) color = QtGui.QColor(QtCore.Qt.blue) painter.setPen(QtGui.QPen(color)) rect = event.rect() rect.setHeight(rect.height() - 1) rect.setWidth(rect.width() - 1) painter.drawRect(rect)
def __init__(self, x, y, size, parent=None): super().__init__(parent) L = size/2 line1 = QtGui.QGraphicsLineItem(x-L, y-L, x+L, y+L) line1.setPen(QtGui.QPen(QtGui.QColor(0, 255, 0))) self.addToGroup(line1) line2 = QtGui.QGraphicsLineItem(x-L, y+L, x+L, y-L) line2.setPen(QtGui.QPen(QtGui.QColor(0, 255, 0))) self.addToGroup(line2)
def __init__(self): pixmap = QtGui.QPixmap(16, 16) pixmap.fill(QtCore.Qt.transparent) qp = QtGui.QPainter(pixmap) qp.setRenderHints(QtGui.QPainter.Antialiasing) qp.setPen(QtGui.QPen(QtCore.Qt.black, 2)) qp.translate(.5, .5) qp.drawLine(0, 4, 12, 14) qp.end() QtGui.QCursor.__init__(self, pixmap, 0, 0)
def __init__(self): pixmap = QtGui.QPixmap(16, 16) pixmap.fill(QtCore.Qt.transparent) qp = QtGui.QPainter(pixmap) qp.setRenderHints(QtGui.QPainter.Antialiasing) qp.setPen(QtGui.QPen(QtCore.Qt.black, 2)) qp.translate(.5, .5) qp.drawArc(0, -7, 22, 22, 2880, 1440) qp.end() QtGui.QCursor.__init__(self, pixmap, 0, 0)
def __init__(self): pixmap = QtGui.QPixmap(12, 12) pixmap.fill(QtCore.Qt.transparent) qp = QtGui.QPainter(pixmap) qp.setRenderHints(QtGui.QPainter.Antialiasing) qp.setPen(QtGui.QPen(QtCore.Qt.black, 1)) qp.translate(.5, .5) path = QtGui.QPainterPath() path.arcTo(0, -2.5, 5, 5, 180, 90) path.arcTo(0, 2.5, 8, 12.5, 90, -90) path.lineTo(11, 5) qp.drawPath(path) qp.end() QtGui.QIcon.__init__(self, pixmap)
def __init__(self): pixmap = QtGui.QPixmap(12, 12) pixmap.fill(QtCore.Qt.transparent) qp = QtGui.QPainter(pixmap) qp.setRenderHints(QtGui.QPainter.Antialiasing) qp.setPen(QtGui.QPen(QtCore.Qt.black, 1)) qp.translate(.5, .5) qp.drawLine(0, 0, 11, 11) qp.end() QtGui.QIcon.__init__(self, pixmap)
def __init__(self): pixmap = QtGui.QPixmap(12, 12) pixmap.fill(QtCore.Qt.transparent) qp = QtGui.QPainter(pixmap) qp.setRenderHints(QtGui.QPainter.Antialiasing) qp.setPen(QtGui.QPen(QtCore.Qt.black, 1)) qp.translate(.5, .5) qp.drawArc(0, -11, 22, 22, 2880, 1440) qp.end() QtGui.QIcon.__init__(self, pixmap)
def __init__(self): QtGui.QWidget.__init__(self) size = 24 self.setFixedSize(size, size) self.pen_width = 5 top = left = self.pen_width / 2. bottom = right = size - 1 - self.pen_width self.area = QtCore.QRectF(top, left, right, bottom) self.brush = QtGui.QConicalGradient(.5, .5, 0) self.brush.setCoordinateMode(QtGui.QConicalGradient.ObjectBoundingMode) self.brush.setColorAt(0, QtCore.Qt.darkGray) self.brush.setColorAt(1, QtCore.Qt.lightGray) self.pen = QtGui.QPen(self.brush, self.pen_width) self.loading_timer = QtCore.QTimer() self.loading_timer.setInterval(20) self.loading_timer.timeout.connect(self.rotate)
def __init__(self, note, text): KeyItem.__init__(self, note, text) self.font_pen = QtGui.QPen() self.paint = self.paint_white self.key_color = self.key_color_up
def __init__(self, parent=None, color=None, alpha=None, width=0, height=0, border=False, border_color=None, label='', label_pos=TOP): QtGui.QWidget.__init__(self, parent) if color is None: self.brush = QtGui.QColor(30, 35, 35, 200 if alpha is None else alpha) else: if len(color) == 4: self.brush = QtGui.QColor(*color) else: self.brush = QtGui.QColor(*color, a=200 if alpha is None else alpha) if not border: self.pen = QtCore.Qt.NoPen elif border_color is None: self.pen = QtGui.QPen(QtGui.QColor(40, 45, 45, 255), 1) else: self.pen = QtGui.QPen(QtGui.QColor(*border_color)) if label: self.label = Label(self, label) self.label.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) self.label.move(0, 0) else: self.label = None if width > 0: self.max_width = width else: self.max_width = None if height > 0: self.max_height = height else: self.max_height = None
def __init__(self, parent=None, *args): EnvelopeObject.__init__(self, parent, *args) self.resize(12, 12) # self.setFixedSize(20, 1) self.pen_normal = QtGui.QPen(QtCore.Qt.NoPen) self.pen_highlight = QtGui.QPen(QtGui.QColor(QtCore.Qt.red), 2) self.pen = self.pen_normal
def paintEvent(self, e): qp = QtGui.QPainter() qp.begin(self) qp.setRenderHints(QtGui.QPainter.Antialiasing) qp.setPen(QtGui.QPen(self.border_grad, self.width()/30.)) qp.setBrush(self.fill_grad) qp.drawEllipse(1, 1, self.width()-1, self.width()-1) qp.end()
def __init__(self, parent, short=False): BaseDisplayWidget.__init__(self, parent) self.pen = QtGui.QPen(self.pen) self.pen.setStyle(QtCore.Qt.DotLine) self.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding) self.setMaximumWidth(3) if short: self.paint = self.paintShort
def __init__(self, height, color=QtGui.QColor(200, 200, 200)): QtGui.QGraphicsItem.__init__(self) self.rect.setHeight(height) self.pen = QtGui.QPen(QtCore.Qt.NoPen) self.brush = QtGui.QBrush(color)
def __init__(self, *args, **kwargs): QtGui.QPushButton.__init__(self, *args, **kwargs) width = self.fontMetrics().lineSpacing() + self.getContentsMargins()[0] + 4 self.setMinimumWidth(width) self.setMaximumWidth(width) disabled = QtGui.QPen(self.palette().color(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText)) enabled = QtGui.QPen(self.palette().color(QtGui.QPalette.Active, QtGui.QPalette.WindowText)) self.text_colors = disabled, enabled self.text = ''
def hoverEnterEvent(self, event): self.pen = QtGui.QPen(QtCore.Qt.red) self.brush = QtGui.QBrush(QtGui.QColor(255, 88, 88)) self.update()