def __init__(self, message, str = None): cfg = Config('messages', message) if (str is None): self.str = cfg.get('message') else: self.str = str self.duration = cfg.get('duration') self.fade_duration = cfg.get('fade_duration') self.color = QColor.fromRgb(*cfg.get('color')) self.alpha_final = self.color.alpha() self.color.setAlpha(0) self.font = FontManager.getFont(cfg.get('font')) self.font.setPointSize(cfg.get('font_size')) self.font_color = QColor.fromRgb(*cfg.get('font_color')) self.font_alpha_final = self.font_color.alpha() self.font_color.setAlpha(0) self.elapsed = 0.0 self.state = 0 self.tick_funcs = [self.tick_fade_in, self.tick_message, self.tick_fade_out]
def __init__(self, message, str=None): cfg = Config('messages', message) if (str is None): self.str = cfg.get('message') else: self.str = str self.duration = cfg.get('duration') self.fade_duration = cfg.get('fade_duration') self.color = QColor.fromRgb(*cfg.get('color')) self.alpha_final = self.color.alpha() self.color.setAlpha(0) self.font = FontManager.getFont(cfg.get('font')) self.font.setPointSize(cfg.get('font_size')) self.font_color = QColor.fromRgb(*cfg.get('font_color')) self.font_alpha_final = self.font_color.alpha() self.font_color.setAlpha(0) self.elapsed = 0.0 self.state = 0 self.tick_funcs = [ self.tick_fade_in, self.tick_message, self.tick_fade_out ]
def setEulerStep(self, stepNum): self.scene.setColorForAllEdges(QColor.fromRgb(0, 0, 0)) if stepNum > 0: for i in range(stepNum): node1 = self.eulerPath[i] node2 = self.eulerPath[i + 1] self.scene.setColorForEdge(node1, node2, QColor.fromRgb(0, 255, 0))
def updateColor(self): newcolor = QColorDialog.getColor(QColor.fromRgb(int("%d" % int(self.value, 16))), None )# Non supporté sous Jaunty ?? if newcolor.isValid(): self.value = str("%x" % newcolor.rgb())[2:] self.color.fill(QColor.fromRgb(int("%d" % int(self.value, 16)))) self.boutton.setIcon(QIcon(self.color)) self.line.setText(self.value) EkdConfig.set(self.section, self.id, self.value)
def data(self, index, role): if role == Qt.TextAlignmentRole: return int(Qt.AlignTop | Qt.AlignLeft) if role == Qt.FontRole: return self.font if role == Qt.BackgroundColorRole: if index.column() == 0: if index.row() != 0: node = self.nodeFromIndex(index) if index.column() == 2: if index.row() != 0: node = self.nodeFromIndex(index) if index.column() == 1: node = self.nodeFromIndex(index) if isinstance(node, SDBRawNode): node = node.parent if isinstance(node, SDBComponentBranch): if node.name == "Interconnect": return QColor.fromRgb(BUS_COLOR) if node.name == "Bridge": return QColor.fromRgb(BRIDGE_COLOR) if node.name == "Empty": return QColor.fromRgb(EMPTY_COLOR) if node.name == "Device": return QColor.fromRgb(DEVICE_COLOR) if node.name == "URL": return QColor.fromRgb(URL_COLOR) if node.name == "Synthesis": return QColor.fromRgb(SYNTHESIS_COLOR) if node.name == "Integration": return QColor.fromRgb(INTEGRATION_COLOR) if node.name == "???": return QColor.fromRgb(UNKOWN_COLOR) return QColor.fromRgb(BAD_CHOICE_COLOR) if role != Qt.DisplayRole: return node = self.nodeFromIndex(index) assert node is not None node_value = "" if isinstance(node, SDBRawRoot): return None if isinstance(node, SDBComponentBranch): return node.field(index.column()) if isinstance(node, SDBRawNode): return node.field(index.column()) return None
def drawInWorld(self, qPainter): pen = qPainter.pen() pen.setColor(QColor.fromRgb(255, 0, 0)) qPainter.setPen(pen) old_transform = qPainter.worldTransform() pen.setWidth(5) pen.setColor(QColor.fromRgb(0, 0, 0)) qPainter.setPen(pen) qPainter.resetTransform() qPainter.setWorldTransform(old_transform)
def canvasPressEvent(self, event): self.dragging = False self.selectrect.setRect(0, 0, 0, 0) self.selectband = QgsRubberBand(self.canvas, QGis.Polygon) self.selectband.setColor(QColor.fromRgb(0, 0, 255, 65)) self.selectband.setWidth(5)
def __init__(self, canvas, layerfrom, layerto, mapping, validation_method): """ mapping - A dict of field - field mapping with values to copy to the new layer """ QgsMapTool.__init__(self, canvas) self.layerfrom = layerfrom self.layerto = layerto self.fields = mapping self.validation_method = validation_method self.band = QgsRubberBand(canvas, QGis.Polygon) self.band.setColor(QColor.fromRgb(255, 0, 0, 65)) self.band.setWidth(5) self.cursor = QCursor(QPixmap(["16 16 3 1", " c None", ". c #FF0000", "+ c #FFFFFF", " ", " +.+ ", " ++.++ ", " +.....+ ", " +. .+ ", " +. . .+ ", " +. . .+ ", " ++. . .++", " ... ...+... ...", " ++. . .++", " +. . .+ ", " +. . .+ ", " ++. .+ ", " ++.....+ ", " ++.++ ", " +.+ "]))
def __init__(self, canvas, forms, snapradius = 2): MapTool.__init__(self, canvas, []) self.canvas = canvas self.radius = snapradius self.forms = forms self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224,162,16)) self.band.setWidth(3) self.selectband = None self.selectrect = QRect() self.dragging = False self.cursor = QCursor(QPixmap(["16 16 3 1", " c None", ". c #FF0000", "+ c #FFFFFF", " ", " +.+ ", " ++.++ ", " +.....+ ", " +. .+ ", " +. . .+ ", " +. . .+ ", " ++. . .++", " ... ...+... ...", " ++. . .++", " +. . .+ ", " +. . .+ ", " ++. .+ ", " ++.....+ ", " ++.++ ", " +.+ "]))
def getRGBFromPixel(self, event): if len(self._detected_colors) < self._MAX_COLORS: pixel_coords = QPoint(event.pos().x(), event.pos().y()) self._detected_colors.append( QColor.fromRgb(self._image.pixel(pixel_coords))) if self._detected_colors[len(self._detected_colors) - 1].isValid(): print "Selected color: RED=" + str(self._detected_colors[ len(self._detected_colors) - 1].red()) + ", GREEN=" + str( self._detected_colors[len(self._detected_colors) - 1]. green()) + ", BLUE=" + str( self._detected_colors[len(self._detected_colors) - 1].blue()) widgets = (self.gridLayoutColors.itemAt(i).widget() for i in range(self.gridLayoutColors.count())) for w in widgets: if isinstance(w, QGraphicsView) and not w.isVisible(): w.setVisible(True) w.setStyleSheet( "background-color: rgb(" + str(self._detected_colors[ len(self._detected_colors) - 1].red()) + ", " + str(self._detected_colors[ len(self._detected_colors) - 1].green()) + ", " + str(self._detected_colors[ len(self._detected_colors) - 1].blue()) + ")") break else: print "Invalid color selected!"
def _add_proc_to_table(self, row, proc_info): self.setItem(row, 0, QTableWidgetItem(str(proc_info.identifier))) self.item(row, 0).setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, QTableWidgetItem(str(proc_info.name))) self.setItem(row, 2, QTableWidgetItem(str(proc_info.cs_overhead))) self.item(row, 2).setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) self.setItem(row, 3, QTableWidgetItem(str(proc_info.cl_overhead))) self.item(row, 3).setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) self.setItem( row, 4, QTableWidgetItem(', '.join([x.name for x in proc_info.caches]))) penalty_item = QTableWidgetItem(str(proc_info.penalty)) penalty_item.setFlags(penalty_item.flags() ^ (Qt.ItemIsEditable | Qt.ItemIsEnabled)) self.setItem(row, 5, penalty_item) self.item(row, 5).setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) self.setItem(row, 6, QTableWidgetItem(str(proc_info.speed))) for col in range(len(self._custom_fields)): key = self._custom_fields[col] if key in proc_info.data and proc_info.data[key] is not None: item = QTableWidgetItem(str(proc_info.data[key])) else: item = QTableWidgetItem('') item.setBackgroundColor(QColor.fromRgb(200, 255, 200)) self.setItem(row, col + len(self._header), item)
def _add_task_to_table(self, row, task): self._ignore_cell_changed = True self.setItem(row, self._dict_header['id'], QTableWidgetItem(str(task.identifier))) self.item(row, self._dict_header['id']) \ .setTextAlignment(Qt.AlignCenter) self.setItem(row, self._dict_header['name'], QTableWidgetItem(str(task.name))) combo = QComboBox() items = [task_type for task_type in Task.task_types_names] combo.addItems(items) # FIXME: only until I get an access to the documentation. for i, t in enumerate(Task.task_types_names): if t == task.task_type: combo.setCurrentIndex(i) combo.currentIndexChanged.connect( lambda x: self._cell_changed(row, self._dict_header['task_type'])) self.setCellWidget(row, self._dict_header['task_type'], combo) item = QTableWidgetItem(task.abort_on_miss and 'Yes' or 'No') item.setFlags( Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) item.setCheckState(task.abort_on_miss and Qt.Checked or Qt.Unchecked) self.setItem(row, self._dict_header['abort'], item) self.setItem(row, self._dict_header['list_activation_dates'], QTableWidgetItem( ', '.join(map(str, task.list_activation_dates)))) self.item(row, self._dict_header['list_activation_dates']) \ .setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) for i in ['activation_date', 'period', 'deadline', 'wcet', 'base_cpi', 'n_instr', 'mix', 'acet', 'et_stddev', 'preemption_cost']: self.setItem(row, self._dict_header[i], QTableWidgetItem(str(task.__dict__[i]))) self.item(row, self._dict_header[i]) \ .setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) stack_item = QTableWidgetItem(str(task.stack_file)) stack_item.setFlags(stack_item.flags() ^ (Qt.ItemIsEditable)) self.setItem(row, self._dict_header['sdp'], stack_item) combo = QComboBox() combo.currentIndexChanged.connect( lambda x: self._cell_changed(row, self._dict_header['followed'])) self.setCellWidget(row, self._dict_header['followed'], combo) for col in range(len(self._custom_fields)): key = self._custom_fields[col] if key in task.data and task.data[key] is not None: item = QTableWidgetItem(str(task.data[key])) else: item = QTableWidgetItem('') item.setBackgroundColor(QColor.fromRgb(200, 255, 200)) self.setItem(row, col + len(self._header), item) self._ignore_cell_changed = False self._show_period(task, row)
def __init__(self, canvas, forms, snapradius=2): MapTool.__init__(self, canvas, []) self.canvas = canvas self.radius = snapradius self.forms = forms self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224, 162, 16)) self.band.setWidth(3) self.selectband = None self.selectrect = QRect() self.dragging = False self.cursor = QCursor( QPixmap([ "16 16 3 1", " c None", ". c #FF0000", "+ c #FFFFFF", " ", " +.+ ", " ++.++ ", " +.....+ ", " +. .+ ", " +. . .+ ", " +. . .+ ", " ++. . .++", " ... ...+... ...", " ++. . .++", " +. . .+ ", " +. . .+ ", " ++. .+ ", " ++.....+ ", " ++.++ ", " +.+ " ]))
def __init__(self, message, str=None): cfg = Config('chats', message) if (str is None): self.str = cfg.get('message') else: self.str = str self.str = self.str.replace('\\\n', '').replace('\n', '\n\n') self.duration = cfg.get('duration') self.font = FontManager.getFont(cfg.get('font')) self.font.setPointSize(cfg.get('font_size')) self.font_color = QColor.fromRgb(*cfg.get('font_color')) self.image = QImage(cfg.get('image_path')) p = cfg.get('image_pos') self.image_rect = QRect(0., 0., self.image.width(), self.image.height()) self.image_rect.moveCenter(QPoint(p[0], p[1])) self.text_rect = QRect(*cfg.get('text_rect')) self.has_cursor = True self.blink_elapsed = 0. self.blink_time = cfg.get('blink_time') self.elapsed = 0. self.message_sz = len(self.str)
def paint(self, painter, option, index): r = option.rect fontPen = QPen(QColor.fromRgb(51, 51, 51), 1, Qt.SolidLine) if option.state & QStyle.State_Selected: painter.setBrush(Qt.cyan) painter.drawRect(r) else: painter.setBrush( Qt.white if (index.row() % 2) == 0 else QColor(252, 252, 252)) painter.drawRect(r) painter.setPen(fontPen) name = index.data(Qt.DisplayRole) path = index.data(Qt.UserRole) imageSpace = 10 # notebook name r = option.rect.adjusted(imageSpace, 0, -10, -20) painter.setFont(QFont('Lucida Grande', 10, QFont.Bold)) painter.drawText(r.left(), r.top( ), r.width(), r.height(), Qt.AlignBottom|Qt.AlignLeft, name) # notebook path r = option.rect.adjusted(imageSpace, 20, -10, 0) painter.setFont(QFont('Lucida Grande', 8, QFont.Normal)) painter.drawText( r.left(), r.top(), r.width(), r.height(), Qt.AlignLeft, path)
def drawInWorld(self, qPainter): pen = qPainter.pen() pen.setColor(QColor.fromRgb(0, 0, 0)) # pen.setWidth() qPainter.setPen(pen) for l in self.qLineFs: qPainter.drawLines(l)
def __init__(self, message, str = None): cfg = Config('chats', message) if (str is None): self.str = cfg.get('message') else: self.str = str self.str = self.str.replace('\\\n', '').replace('\n','\n\n') self.duration = cfg.get('duration') self.font = FontManager.getFont(cfg.get('font')) self.font.setPointSize(cfg.get('font_size')) self.font_color = QColor.fromRgb(*cfg.get('font_color')) self.image = QImage(cfg.get('image_path')) p = cfg.get('image_pos') self.image_rect = QRect(0.,0.,self.image.width(),self.image.height()) self.image_rect.moveCenter(QPoint(p[0],p[1])) self.text_rect = QRect(*cfg.get('text_rect')) self.has_cursor = True self.blink_elapsed = 0. self.blink_time = cfg.get('blink_time') self.elapsed = 0. self.message_sz = len(self.str)
def canvasPressEvent(self, event): self.dragging = False self.selectrect.setRect( 0, 0, 0, 0 ) self.selectband = QgsRubberBand(self.canvas, QGis.Polygon ) self.selectband.setColor(QColor.fromRgb(0,0,255, 65)) self.selectband.setWidth(5)
def __init__(self, canvas, layerfrom, layerto, mapping, validation_method): """ mapping - A dict of field - field mapping with values to copy to the new layer """ QgsMapTool.__init__(self, canvas) self.layerfrom = layerfrom self.layerto = layerto self.fields = mapping self.validation_method = validation_method self.band = QgsRubberBand(canvas, QGis.Polygon ) self.band.setColor(QColor.fromRgb(255,0,0, 65)) self.band.setWidth(5) self.cursor = QCursor(QPixmap(["16 16 3 1", " c None", ". c #FF0000", "+ c #FFFFFF", " ", " +.+ ", " ++.++ ", " +.....+ ", " +. .+ ", " +. . .+ ", " +. . .+ ", " ++. . .++", " ... ...+... ...", " ++. . .++", " +. . .+ ", " +. . .+ ", " ++. .+ ", " ++.....+ ", " ++.++ ", " +.+ "]))
def __init__(self, canvas, layers, snapradius = 2): MapTool.__init__(self, canvas, layers) self.canvas = canvas self.radius = snapradius self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224,162,16)) self.band.setWidth(3) self.cursor = QCursor(QPixmap(["16 16 3 1", " c None", ". c #FF0000", "+ c #FFFFFF", " ", " +.+ ", " ++.++ ", " +.....+ ", " +. .+ ", " +. . .+ ", " +. . .+ ", " ++. . .++", " ... ...+... ...", " ++. . .++", " +. . .+ ", " +. . .+ ", " ++. .+ ", " ++.....+ ", " ++.++ ", " +.+ "]))
def __init__(self, parent=None): QWidget.__init__(self, parent) self._options = None self._conf = None self._go = QPushButton('Go') self._go.setMaximumWidth(100) font = self._go.font() font.setPointSizeF(font.pointSizeF() * 2.0) font.setWeight(QFont.Bold) self._go.setFont(font) self._go.clicked.connect(self.go) self._saveLog = QPushButton('Save') saveLogLabel = QLabel('Log File:') saveLogBrowse = QPushButton('&Browse') saveLogBrowse.clicked.connect(self.browseSaveLog) self._saveLogEdit = QLineEdit('') gLayout = QGridLayout() gLayout.addWidget(saveLogLabel, 0, 0, 1, 1, Qt.AlignRight) gLayout.addWidget(self._saveLogEdit, 0, 1, 1, 6) gLayout.addWidget(saveLogBrowse, 0, 7, 1, 1) self._console = QTextEdit() self._console.setLineWrapMode(QTextEdit.NoWrap) self._console.setMinimumSize(800, 400) palette = self._console.palette() palette.setColor(QPalette.Base, QColor.fromRgb(255, 255, 221)) # ffffdd. self._console.setPalette(palette) font = QFont('Bitstream Vera Sans Mono', self._console.font().pointSize()) self._console.setFont(font) self._highlighter = Highlighter(self._console.document()) self._progressBar = QProgressBar() self._progressBar.setRange(0, 100) self._progressBar.setTextVisible(True) hLayout = QHBoxLayout() hLayout.addStretch() hLayout.addWidget(self._go) hLayout.addStretch() hLayout.addWidget(self._saveLog) hLayout.addStretch() vLayout = QVBoxLayout() vLayout.addLayout(hLayout) vLayout.addLayout(gLayout) vLayout.addWidget(self._progressBar) vLayout.addWidget(self._console) self.setLayout(vLayout) self.progress.connect(self._progressBar.setValue) self._saveLog.clicked.connect(self.saveLog) self.readSettings() return
def createRubberBand(self): """ Creates a new rubber band. """ band = QgsRubberBand(self.canvas()) band.setColor(QColor.fromRgb(237, 85, 9)) band.setWidth(6) return band
def createRubberBand(self): """ Creates a new rubber band. """ band = QgsRubberBand(self.canvas) band.setColor(QColor.fromRgb(237,85,9)) band.setWidth(6) return band
def _add_task_to_table(self, row, task): self._ignore_cell_changed = True self.setItem(row, self._dict_header['id'], QTableWidgetItem(str(task.identifier))) self.item(row, self._dict_header['id']) \ .setTextAlignment(Qt.AlignCenter) self.setItem(row, self._dict_header['name'], QTableWidgetItem(str(task.name))) combo = QComboBox() items = [task_type for task_type in Task.task_types_names] combo.addItems(items) combo.setCurrentIndex(combo.findText(task.task_type)) combo.currentIndexChanged.connect( lambda x: self._cell_changed(row, self._dict_header['task_type'])) self.setCellWidget(row, self._dict_header['task_type'], combo) item = QTableWidgetItem(task.abort_on_miss and 'Yes' or 'No') item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) item.setCheckState(task.abort_on_miss and Qt.Checked or Qt.Unchecked) self.setItem(row, self._dict_header['abort'], item) self.setItem( row, self._dict_header['list_activation_dates'], QTableWidgetItem(', '.join(map(str, task.list_activation_dates)))) self.item(row, self._dict_header['list_activation_dates']) \ .setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) for i in [ 'activation_date', 'period', 'deadline', 'wcet', 'base_cpi', 'n_instr', 'mix', 'acet', 'et_stddev', 'preemption_cost' ]: self.setItem(row, self._dict_header[i], QTableWidgetItem(str(task.__dict__[i]))) self.item(row, self._dict_header[i]) \ .setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) stack_item = QTableWidgetItem(str(task.stack_file)) stack_item.setFlags(stack_item.flags() ^ (Qt.ItemIsEditable)) self.setItem(row, self._dict_header['sdp'], stack_item) combo = QComboBox() combo.currentIndexChanged.connect( lambda x: self._cell_changed(row, self._dict_header['followed'])) self.setCellWidget(row, self._dict_header['followed'], combo) for col in range(len(self._custom_fields)): key = self._custom_fields[col] if key in task.data and task.data[key] is not None: item = QTableWidgetItem(str(task.data[key])) else: item = QTableWidgetItem('') item.setBackgroundColor(QColor.fromRgb(200, 255, 200)) self.setItem(row, col + len(self._header), item) self._ignore_cell_changed = False self._show_period(task, row)
def _parse_qcolor_html(color_spec): digits = color_spec[1:] if color_spec.startswith("#") else color_spec if len(digits) not in [6, 8]: raise ValueError("Invalid length for HTML format") components = [int(digits[i : i + 2], 16) for i in range(0, len(digits), 2)] return QColor.fromRgb(*components)
def __changeColor(self): color = QColorDialog.getColor( QColor.fromRgb(*self.game.clientPlayer.color), self, "Choose your color", ) if color.isValid(): color = color.getRgb() self.colorChanged.emit(list(color[:-1]))
def __init__(self, methodName): """Run once on class initialisation.""" unittest.TestCase.__init__(self, methodName) # create composition self.mMapRenderer = QgsMapRenderer() self.mComposition = QgsComposition(self.mMapRenderer) self.mComposition.setPaperSize(297, 210) self.mComposerRect1 = QgsComposerShape(20, 20, 150, 100, self.mComposition) self.mComposerRect1.setShapeType(QgsComposerShape.Rectangle) self.mComposerRect1.setBackgroundColor(QColor.fromRgb(255, 150, 0)) self.mComposition.addComposerShape(self.mComposerRect1) self.mComposerRect2 = QgsComposerShape(50, 50, 150, 100, self.mComposition) self.mComposerRect2.setShapeType(QgsComposerShape.Rectangle) self.mComposerRect2.setBackgroundColor(QColor.fromRgb(0, 100, 150)) self.mComposition.addComposerShape(self.mComposerRect2)
def preDraw(self, qPainter): qPainter.save() qPainter.setWorldTransform(self.getWorldToScreenTransform()) pen = qPainter.pen() pen.setCosmetic(True) qPainter.setPen(pen) brush = QtGui.QBrush() brush.setColor(QColor.fromRgb(255, 0, 0)) # brush.setStyle(Qt.SolidLine) # qPainter.setBrush(brush)
def paintEvent(self, e): """ @summary: Call when Qt renderer engine estimate that is needed @param e: QEvent """ #draw in widget with QtGui.QPainter(self) as qp: qp.drawImage(0, 0, self._buffer) qp.setBrush(QColor.fromRgb(255, 255, 0, 180)) qp.drawEllipse(QPoint(self.mouseX, self.mouseY), 5, 5)
def __init__(self, qnt_pontos=10): self.qnt_pontos = qnt_pontos self.app = QtGui.QApplication([]) self.plot = pg.plot() self.plot.setBackgroundBrush(QBrush(QColor.fromRgb(255, 255, 255))) #self.plot.windowTitle(). #self.plot.setForegroundBrush(QBrush(QColor.fromRgb(250,0,0,30))) self.plot.setWindowTitle('PlotterHandler') self.plot.setRange(QtCore.QRectF(0, -10, 5000, 20)) self.plot.setLabel('bottom', 'Index', units='un') self.plot.setLabel('left', 'Valor', units='V') self.curve = self.plot.plot(pen='b') # self.plot.enableAutoRange('xy', True) self.plot.enableAutoRange('xy', False) self.plot.setXRange(0, 5000) self.plot.setYRange(0, 5) #self.plot.enableAutoRange('xy', True) #grade = pg.GridItem() #self.plot.addItem(grade) self.plot.showGrid(True, True) #self.plot.showAxis('top', False) #self.plot.showAxis('bottom', False) #self.plot.showAxis('left', False) #self.plot.showAxis('right', False) self.plot.getAxis('left').setPen(QPen(QColor.fromRgb(0, 0, 0))) self.plot.getAxis('bottom').setPen(QPen(QColor.fromRgb(0, 0, 0))) #print self.plot.getRange #self.plot. # self.plot.showGrid(2,3) #self.plot.hideAxis(ax) # self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update_y_points) self.lastTime = time() self.fps = None self.y_values = [0] * self.qnt_pontos self.plot_buffer = Queue(qnt_pontos)
def __init__(self, methodName): """Run once on class initialisation.""" unittest.TestCase.__init__(self, methodName) # create composition self.mComposition = QgsComposition(None) self.mComposition.setPaperSize(297, 210) self.mComposerShape = QgsComposerShape(20, 20, 150, 100, self.mComposition) self.mComposerShape.setBackgroundColor(QColor.fromRgb(255, 150, 0)) self.mComposition.addComposerShape(self.mComposerShape)
def __init__(self, canvas, snapradius = 2): super(InfoTool, self).__init__(canvas) self.radius = snapradius self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224,162,16)) self.band.setWidth(3) self.selectband = None self.selectrect = QRect() self.dragging = False self.selectionlayers = []
def __init__(self, canvas, snapradius=2): super(InfoTool, self).__init__(canvas) self.radius = snapradius self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224, 162, 16)) self.band.setWidth(3) self.selectband = None self.selectrect = QRect() self.dragging = False self.selectionlayers = []
def __init__(self, canvas): self.canvas = canvas QgsMapToolEmitPoint.__init__(self, self.canvas) self.rubberband = QgsRubberBand(self.canvas, QGis.Polygon) self.point = None self.points = [] attribs = ['id'] types = [QtCore.QVariant.String] self.layer = uf.createTempLayer('Danger Zones', 'POLYGON', '28992', attribs, types, 50) self.symbols = self.layer.rendererV2().symbols() self.symbol = self.symbols[0] self.symbol.setColor(QColor.fromRgb(160, 160, 160))
def paint(self, painter, option, index): filePath = self.model.filePath(index) fileName = self.model.fileName(index) r = option.rect img = QPixmap(filePath) if img.isNull(): # If not image file, try to load icon with QFileIconProvider # according to file type (extension name). # Currently not work as intended. fileInfo = self.model.fileInfo(index) icon = QFileIconProvider().icon(fileInfo) img = icon.pixmap(QSize(32, 32)) # Scale to height, align center horizontally, align bottom vertically. if img.height() > self.thumbHeight: img = img.scaledToHeight(self.thumbHeight, Qt.SmoothTransformation) imgLeft = (self.width - img.width()) / 2 imgTop = self.thumbHeight - img.height() painter.drawPixmap(r.left()+imgLeft, r.top()+imgTop, img) rect = QRect(r.left(), r.top()+self.thumbHeight, self.width, self.nameHeight) flag = Qt.AlignHCenter | Qt.TextWrapAnywhere # get the bounding rectangle of the fileName bdRect = painter.boundingRect(rect, flag, fileName) if bdRect.height() < rect.height(): rect = bdRect if option.state & QStyle.State_Selected: painter.setBrush(Qt.darkBlue) painter.drawRoundedRect(rect, 5, 5) pen = QPen(QColor.fromRgb(255, 255, 255), 1, Qt.SolidLine) else: pen = QPen(QColor.fromRgb(51, 51, 51), 1, Qt.SolidLine) painter.setPen(pen) painter.drawText(rect, flag, fileName)
def extract_color_at_point(raster, point, point_crs): if not raster.crs() == point_crs: xform = QgsCoordinateTransform(point_crs, raster.crs()) point = xform.transform(point) color_rgba = raster.dataProvider().identify(point,QgsRaster.IdentifyFormatValue).results() try: r, g, b, a = color_rgba.values() color = QColor.fromRgb(r, g, b, a) except (ValueError, TypeError): return None else: return color
def configure_area(self, x_title='Index', x_unit='', y_title='Values', y_unit=''): """ Configure the plot to: Show a X,Y grid. Sets the colors to a white background theme. Sets the axis range and labels. :param x_title: The x axis label. :param x_unit: The unit names of the x values. :param y_title: The y axis label. :param y_unit: The unit names of the y axis. """ self.plotWidget.showGrid(True, True) # Colors: self.plotWidget.setBackgroundBrush(QBrush(QColor.fromRgb(255, 255, 255))) self.plotWidget.getAxis('left').setPen(QPen(QColor.fromRgb(0, 0, 0))) self.plotWidget.getAxis('bottom').setPen(QPen(QColor.fromRgb(0, 0, 0))) self.plotWidget.getAxis('left').setPen(QPen(QColor.fromRgb(0, 0, 0))) self.plotWidget.getAxis('bottom').setPen(QPen(QColor.fromRgb(0, 0, 0))) # Axis: self.plotWidget.setXRange(0, self.qnt_points) self.plotWidget.setYRange(self.__y_range[0], self.__y_range[1]) self.plotWidget.setLabel('bottom', x_title, units=x_unit) self.plotWidget.setLabel('left', y_title, units=y_unit)
def extract_color_at_point(raster, point, point_crs): if not raster.crs() == point_crs: xform = QgsCoordinateTransform(point_crs, raster.crs()) point = xform.transform(point) color_rgba = raster.dataProvider().identify( point, QgsRaster.IdentifyFormatValue).results() try: r, g, b, a = color_rgba.values() color = QColor.fromRgb(r, g, b, a) except (ValueError, TypeError): return None else: return color
def createLayerControle(proj): layerStopLine = QgsVectorLayer("Point?crs=" + proj, CONST_NOM_LAYER_PT_CONTROLE, "memory") # Style # Symbologie des stations symbolPoint = QgsMarkerSymbolV2.createSimple({ 'name': 'square', 'color_border': '255,216,0' }) symbolPoint.setColor(QColor.fromRgb(255, 216, 0)) #F 216,7,96 symbolPoint.setSize(2) layerStopLine.rendererV2().setSymbol(symbolPoint) return layerStopLine
def __init__(self, name, iface): QAction.__init__(self, name, iface.mainWindow()) self.canvas = iface.mapCanvas() self.toggled.connect(self.setTool) self.tool = PointTool(self.canvas) self.tool.mouseClicked.connect(self.findFeatures) self.tool.mouseMove.connect(self.highlightFeatures) self.setIcon(QIcon(":/icons/edit")) self.dialogprovider = DialogProvider(self.canvas, iface) self.dialogprovider.accepted.connect(self.setTool) self.dialogprovider.rejected.connect(self.setTool) self.setCheckable(True) self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224, 162, 16)) self.band.setWidth(3)
def onCursorPositionChanged(self): # paint a different background color on the line that contains the cursor selection = QTextEdit.ExtraSelection() clr = QColor.fromRgb(*(0xF0,) * 3) selection.format.setBackground(clr) selection.format.setProperty(QTextFormat.FullWidthSelection, True) selection.cursor = self.textCursor() selection.cursor.clearSelection() self.setExtraSelections([selection]) # discover what word we are over and signal an event if it changes cursor = self.textCursor() pos = (cursor.block().firstLineNumber() + 1, cursor.position() - cursor.block().position()) cursor.select(QTextCursor.WordUnderCursor) word = cursor.selectedText() QCoreApplication.instance().on_click_text(self.document().module, pos, word)
def __init__(self, prop, name, value, section=None ): super(EkdColorPropertie, self).__init__(prop, name, value, EkdPropertie.COLOR, section) self.label = QLabel(name) self.widget = QFrame() self.layout = QHBoxLayout(self.widget) self.line = QLineEdit(value) self.value = value self.line.setReadOnly(True) self.layout.addWidget(self.line) self.color = QPixmap(15, 15) self.color.fill(QColor.fromRgb(int("%d" % int(self.value, 16)))) self.boutton = QPushButton(QIcon(self.color), u"") self.boutton.setFixedSize(25,25) self.layout.addWidget(self.boutton) # Quand on clique sur le boutton on défini la couleur self.connect(self.boutton, SIGNAL("clicked()"), self.updateColor)
def setColorText(self, idx, txt): if len(txt) != 9 or txt[0] != '#': return False if self.show_rgba: r = int(txt[1:3], 16) g = int(txt[3:5], 16) b = int(txt[5:7], 16) a = int(txt[7:9], 16) col = QColor.fromRgb(r, g, b, a) else: h = int(txt[1:3], 16) v = int(txt[3:5], 16) s = int(txt[5:7], 16) a = int(txt[7:9], 16) col = QColor.fromHsv(h, s, v, a) self.colors[idx] = col return True
def setColorText(self, idx, txt): if len(txt) != 9 or txt[0] != '#': return False if self.show_rgba: r = int(txt[1:3], 16) g = int(txt[3:5], 16) b = int(txt[5:7], 16) a = int(txt[7:9], 16) col = QColor.fromRgb(r,g,b,a) else: h = int(txt[1:3], 16) v = int(txt[3:5], 16) s = int(txt[5:7], 16) a = int(txt[7:9], 16) col = QColor.fromHsv(h, s, v, a) self.colors[idx] = col return True
def __init__(self, level_number, level): self.level_number = level_number self.info = {} self.fields = set() self.level = level self.player_state = Player.get_instance() cfg = Config('interface', 'Settings') font_name = cfg.get('field_font') font_size = cfg.get('field_font_sz') self.field_font = FontManager.getFont(font_name) self.field_font.setPointSize(font_size) self.field_color = QColor.fromRgb(*cfg.get('field_color')) for f_name in ConfigManager.getOptions('interface', 'Fields'): s = ConfigManager.getVal('interface', 'Fields', f_name) s = map(str.strip, s.split('||')) img = QImage('resources/images/'+s[0]) img_pos = QPoint(*eval(s[1])) info_rect = QRect(*eval(s[2])) scale = float(s[3]) if (len(s) >= 5): font = QFont(self.field_font) font.setPointSize(int(s[4])) else: font = self.field_font img_w, img_h = img.width(), img.height() img_rect = QRect( img_pos.x(), img_pos.y(), int(img_w*scale), int(img_h*scale) ) self.info[f_name] = '' self.fields.add(Field(f_name, img, img_rect, info_rect, font)) self.radar = Radar.from_config('E-Radar', self) self.missile = GuidedMissile.from_config('GuidedMissile', self)
def __init__(self, canvas, layers, snapradius=2): MapTool.__init__(self, canvas, layers) self.canvas = canvas self.radius = snapradius self.band = QgsRubberBand(self.canvas) self.band.setColor(QColor.fromRgb(224, 162, 16)) self.band.setWidth(3) self.cursor = QCursor( QPixmap([ "16 16 3 1", " c None", ". c #FF0000", "+ c #FFFFFF", " ", " +.+ ", " ++.++ ", " +.....+ ", " +. .+ ", " +. . .+ ", " +. . .+ ", " ++. . .++", " ... ...+... ...", " ++. . .++", " +. . .+ ", " +. . .+ ", " ++. .+ ", " ++.....+ ", " ++.++ ", " +.+ " ]))
def convertRGB(self, clr, forced=False): if clr.spec() == QColor.Cmyk: cmyk = COLORB() cmyk[0] = clr.cyan() cmyk[1] = clr.magenta() cmyk[2] = clr.yellow() cmyk[3] = clr.black() rgb = COLORB() rgb[0] = 0 rgb[1] = 0 rgb[2] = 0 cmsDoTransform(self.cmykTransform, cmyk, rgb, 1) return QColor.fromRgb(rgb[0], rgb[1], rgb[2], clr.alpha()) elif forced: clr=self.convertCMYK(clr) return self.convertRGB(clr) elif clr.spec() == QColor.Rgb: return clr return clr.toRgb()
def _parse_qcolor_arrayish(color_spec): if len(color_spec) < 3 or len(color_spec) > 4: raise ValueError("Expecting an array of length 3 or 4") if len(set(type(x) for x in color_spec)) > 1: raise ValueError("All components must have the same type") comp_type = type(color_spec[0]) if comp_type == int: if not all(0 <= x <= 255 for x in color_spec): raise ValueError("Integer components must be in the [0..255] range") return QColor.fromRgb(*color_spec) elif comp_type == float: if not all(0.0 <= x <= 1.0 for x in color_spec): raise ValueError("Float components must be in the [0.0..1.0] range") return QColor.fromRgbF(*color_spec) raise ValueError("Only int and float components are supported")
def convertRGB(self, clr, forced=False): if clr.spec() == QColor.Cmyk: cmyk = COLORB() cmyk[0] = clr.cyan() cmyk[1] = clr.magenta() cmyk[2] = clr.yellow() cmyk[3] = clr.black() rgb = COLORB() rgb[0] = 0 rgb[1] = 0 rgb[2] = 0 cmsDoTransform(self.cmykTransform, cmyk, rgb, 1) return QColor.fromRgb(rgb[0], rgb[1], rgb[2], clr.alpha()) elif forced: clr = self.convertCMYK(clr) return self.convertRGB(clr) elif clr.spec() == QColor.Rgb: return clr return clr.toRgb()
#creates the coloring pattern for the layer #note: find setting for opacity if True: malNutRange = ( ('0 to 2', 0.0, 2, [0,150,0,TRANSPARENCY]), ('2 to 10', 2, 10, [230,230,0,TRANSPARENCY]), ('10 to 20', 10, 20, [230,90,0,TRANSPARENCY]), ('>20', 20, 999, [222,0,0,TRANSPARENCY])) # maybe switch with: '20 to '+str(maxTotal) # create a category for each item ranges = [] for label, lower, upper, color in malNutRange: symbol = QgsSymbolV2.defaultSymbol(myPolyLayer.geometryType()) symbol.setColor(QColor.fromRgb(color[0],color[1],color[2],color[3])) rng = QgsRendererRangeV2(lower, upper, symbol, label) ranges.append(rng) # create the renderer and assign it to a layer expression = FIELD # field name renderer = QgsGraduatedSymbolRendererV2(expression, ranges) else: renderer=QgsGraduatedSymbolRendererV2.createRenderer(myPolyLayer,'total', CLASSES,QgsGraduatedSymbolRendererV2.Jenks, QgsSymbolV2.defaultSymbol(myPolyLayer.geometryType()),RAMP) #set the border of the polygons for Symbol in renderer.symbols(): Symbol.symbolLayer(0).setBorderColor(QColor.fromRgb(0,0,0,TRANSPARENCY)) myPolyLayer.setRendererV2(renderer) myPolyLayer.commitChanges()
def mouseMoveEvent( self, event ): pos = event.globalPos() rgb = self.image.pixel( pos ) color = QColor.fromRgb( rgb ) if self.owner: self.owner.setColor( color )
def data(self, index, role): if role == Qt.TextAlignmentRole: return int(Qt.AlignTop | Qt.AlignLeft) if role == Qt.FontRole: return self.font if role == Qt.BackgroundColorRole: node = self.nodeFromIndex(index) if isinstance(node, SDBBusBranch): if index.column() < node.get_depth(): return return QColor.fromRgb(BUS_COLOR) if isinstance(node, SDBComponentBranch): if index.column() < node.get_depth(): return c = node.component if c.is_integration_record(): return QColor.fromRgb(INTEGRATION_COLOR) if c.is_synthesis_record(): return QColor.fromRgb(SYNTHESIS_COLOR) if c.is_url_record(): return QColor.fromRgb(URL_COLOR) else: return QColor.fromRgb(DEVICE_COLOR) if isinstance(node, SDBEntryNode): if index.column() < node.get_depth(): return return QColor.fromRgb(INFO_COLOR) if role != Qt.DisplayRole: return node = self.nodeFromIndex(index) assert node is not None if isinstance(node, RootBusBranch): return None if isinstance(node, SDBBusBranch): depth = node.get_depth() if index.column() == depth: return "Bus: %s" % node.get_name() if isinstance(node, SDBComponentBranch): depth = node.get_depth() if index.column() == depth: c = node.component if c.is_integration_record(): return "Integration: %s" % node.get_name() if c.is_synthesis_record(): return "Synthesis" if c.is_url_record(): return "URL" else: return "Device: %s" % node.get_name() if isinstance(node, SDBEntryNode): depth = node.get_depth() if index.column() == depth: return node.get_name() if index.column() == depth + 1: return node.get_value() return None
def calculateBuffer(self): layer = uf.getLegendLayerByName(self.iface, "Attack Point") origins = layer.getFeatures() if origins > 0: cutoff_distance = self.getBufferCutoff() if cutoff_distance: if (QgsMapLayerRegistry.instance().mapLayersByName("Perimeter") ): buffer_layer = uf.getLegendLayerByName( self.iface, "Perimeter") QgsMapLayerRegistry.instance().removeMapLayer( buffer_layer.id()) buffers = {} for point in origins: geom = point.geometry() buffers[point.id()] = geom.buffer(cutoff_distance, 12).asPolygon() # store the buffer results in temporary layer called "Perimeter" buffer_layer = uf.getLegendLayerByName(self.iface, "Perimeter") # Create one if it doesn't exist if not buffer_layer: attribs = ['id', 'distance'] types = [QtCore.QVariant.String, QtCore.QVariant.Double] buffer_layer = uf.createTempLayer( 'Perimeter', 'POLYGON', layer.crs().postgisSrid(), attribs, types, 70) uf.loadTempLayer(buffer_layer) buffer_layer.setLayerName('Perimeter') symbols = buffer_layer.rendererV2().symbols() symbol = symbols[0] symbol.setColor(QColor.fromRgb(220, 220, 0)) # Insert buffer polygons geoms = [] values = [] for buffer in buffers.iteritems(): # Each buffer has an id and a geometry geoms.append(buffer[1]) # In the case of values, it expects a list of multiple values in each item - list of lists values.append([buffer[0], cutoff_distance]) uf.insertTempFeatures(buffer_layer, geoms, values) self.refreshCanvas(buffer_layer) extent = buffer_layer.extent() self.canvas.setExtent(extent) layers = ["road_net"] for layer in layers: vl = uf.getLegendLayerByName(self.iface, layer) iface.legendInterface().setLayerVisible(vl, True) # Make half transparent Open Street Map rlayer = uf.getLegendLayerByName(self.iface, "OpenStreetMap") rlayer.renderer().setOpacity(0.5) # 0.5 = 50%; 0.1 = 90%... rlayer.triggerRepaint() # Jump to tab 2 self.tabs.setTabEnabled(1, True) self.tabs.setCurrentIndex(1) self.scrollArea.verticalScrollBar().setValue(0) # If POIs in and out already exist, remove them check_layer = uf.getLegendLayerByName(self.iface, "Buildings to evacuate") check_layer2 = uf.getLegendLayerByName(self.iface, "Shelters") if check_layer: QgsMapLayerRegistry.instance().removeMapLayer( check_layer.id()) QgsMapLayerRegistry.instance().removeMapLayer( check_layer2.id()) self.buildings.clear() if buffer_layer: names = ["Buildings to evacuate", "Shelters"] styles = ["style.qml", "style2.qml"] self.dup_layer(28992, names) self.load_style(names, styles) self.intersectANDdelete() build = uf.getLegendLayerByName(iface, "Buildings to evacuate") feats = build.getFeatures() n = 0 for feat in feats: if feat.attributes( )[2] != 'police' and feat.attributes( )[2] != 'fire_station': n += 1 self.buildings.append('%s' % n)
# -*- coding: utf-8 -*- from PyQt4.QtGui import QColor #SELECCIONA LA CAPA DE RIOS layer=iface.activeLayer() #CREA EL OBJETO DE ETIQUETA Y DETERMINA EL CAMPO A ETIQUETAR palyr = QgsPalLayerSettings() palyr.readFromLayer(layer) palyr.enabled = True palyr.fieldName = 'NOMBRE' #cuidado con nombre del campo #PLACEMENT: palyr.placement= QgsPalLayerSettings.Line #COLOR: palyr.textColor = QColor.fromRgb(49,195,255) #requiere importar QColor de PyQt4.QtGui #TAMAÑO CON DEFINE PROPERTIES (EN MM) palyr.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'20','') #PINTA LA ETIQUETA palyr.writeToLayer(layer) #REFRESCA EL MAPA Y LA TOC iface.mapCanvas().refresh() iface.legendInterface().refreshLayerSymbology(layer) layer.triggerRepaint()
def run(self): """Run method that performs all the real work""" layers = self.iface.legendInterface().layers() raster_layer_list = [] domain_layer_list = [] for layer in layers: if layer.type() == QgsMapLayer.VectorLayer: domain_layer_list.append(layer.name()) elif layer.type() == QgsMapLayer.RasterLayer: raster_layer_list.append(layer.name()) raster_prefix_list = ['B5', 'BQA'] toc = self.iface.legendInterface() root = QgsProject.instance().layerTreeRoot() groups = toc.groups() self.dlg.comboBox_rasterLayer.clear() self.dlg.comboBox_rasterPrefix.clear() self.dlg.comboBox_rasterGroup.clear() self.dlg.comboBox_domainLayer.clear() self.dlg.comboBox_rasterLayer.addItems(raster_layer_list) self.dlg.comboBox_rasterPrefix.addItems(raster_prefix_list) self.dlg.comboBox_rasterGroup.addItems(groups) self.dlg.comboBox_domainLayer.addItems(domain_layer_list) # show the dialog self.dlg.show() # Run the dialog event loop result = self.dlg.exec_() # See if OK was pressed if result: rasterLayerIndex = self.dlg.comboBox_rasterLayer.currentIndex() rasterPrefixIndex = self.dlg.comboBox_rasterPrefix.currentIndex() rasterGroupIndex = self.dlg.comboBox_rasterGroup.currentIndex() domainLayerIndex = self.dlg.comboBox_domainLayer.currentIndex() rasterLayerName = raster_layer_list[rasterLayerIndex] rasterPrefix = raster_prefix_list[rasterPrefixIndex] rasterGroupName = groups[rasterGroupIndex] domainLayerName = domain_layer_list[domainLayerIndex] rasterGroup = root.findGroup(rasterGroupName) rasterLayers = rasterGroup.findLayers() for layer in QgsMapLayerRegistry.instance().mapLayers().values(): if layer.name() == domainLayerName: domainLayer = layer break for rasterLayer in rasterLayers: try: if rasterLayer.name().endswith(rasterPrefix): maskRasterLayer, maskVectorLayer = coastline_masker_core.maskFromLayers( rasterLayer.layer(), domainLayer, None, [5, 15]) # step 1: add the layer to the registry, False indicates not to add to the layer tree #QgsMapLayerRegistry.instance().addMapLayer(maskRasterLayer, False) QgsMapLayerRegistry.instance().addMapLayer( maskVectorLayer, False) # step 2: append layer to the root group node #maskRasterLayerObject = rasterGroup.insertLayer(0, maskRasterLayer) maskVectorLayerObject = rasterGroup.insertLayer( 0, maskVectorLayer) # step 3: Add transparency slider to layers #maskRasterLayer.setCustomProperty("embeddedWidgets/count", 1) #maskRasterLayer.setCustomProperty("embeddedWidgets/0/id", "transparency") #qgis.utils.iface.legendInterface().refreshLayerSymbology(maskRasterLayer) maskVectorLayer.setCustomProperty( "embeddedWidgets/count", 1) maskVectorLayer.setCustomProperty( "embeddedWidgets/0/id", "transparency") # Alter fill style for vector layers symbols = maskVectorLayer.rendererV2().symbols() symbol = symbols[0] symbol.setColor(QColor.fromRgb(50, 50, 250, 25)) # Redraw canvas and save variable to global context qgis.utils.iface.legendInterface( ).refreshLayerSymbology(maskVectorLayer) g_vectorLayer = maskVectorLayer except cv2.error as e: print "OpenCV ERROR", e except Exception as e: print e
class Highlighter(QSyntaxHighlighter): Normal = 0x0001 Bold = 0x0002 Italic = 0x0004 ttyBackground = QColor.fromRgb(255, 255, 221) # #ffffdd ttyBlack = QColor.fromRgb(46, 52, 54) # #2e3436 ttyRed = QColor.fromRgb(204, 0, 0) # #cc0000 ttyGreen = QColor.fromRgb(78, 154, 6) # #4e9a06 ttyYellow = QColor.fromRgb(196, 160, 0) # #c4a000 ttyBlue = QColor.fromRgb(52, 101, 164) # #3465a4 ttyViolet = QColor.fromRgb(117, 80, 123) # #75507b ttyCyan = QColor.fromRgb(6, 152, 154) # #06989a ttyGrey = QColor.fromRgb(211, 215, 207) # #d3d7cf ttyLightBlack = QColor.fromRgb(85, 87, 83) # #555753 ttyLightRed = QColor.fromRgb(239, 41, 41) # #ef2929 ttyLightGreen = QColor.fromRgb(138, 226, 52) # #8ae234 ttyLightYellow = QColor.fromRgb(252, 233, 79) # #fce94f ttyLightBlue = QColor.fromRgb(114, 159, 207) # #729fcf ttyLightViolet = QColor.fromRgb(173, 127, 168) # #ad7fa8 ttyLightCyan = QColor.fromRgb(52, 226, 226) # #34e2e2 ttyLightGrey = QColor.fromRgb(238, 238, 236) # #eeeeec Rules = [ [ttyLightViolet, Bold, re.compile(r'^Scanning.*'), None], [ttyLightRed, Bold, re.compile(r'^Linking.*'), None], [ ttyLightGreen, Normal, re.compile(r'^\[(?P<percent>\s*\d+)%\]\s*(?P<message>Building.*)'), None ], [ ttyLightGreen, Bold, re.compile( r'^\[(?P<percent>\s*\d+)%\]\s*(?P<message>Built target.*)'), None ], [ ttyLightBlue, Normal, re.compile( r'^\[(?P<percent>\s*\d+)%\]\s*(?P<message>Generating.*moc_.*)' ), None ], [ttyLightBlue, Bold, re.compile(r'^Generating.*'), None], [ttyLightCyan, Normal, re.compile(r'^Install the project.*'), None], [ttyCyan, Bold, re.compile(r'^-- Install.*'), None], [ttyCyan, Bold | Italic, re.compile(r'^-- Up-to-date.*'), None] ] def __init__(self, parent=None): QSyntaxHighlighter.__init__(self, parent) for rule in Highlighter.Rules: if not rule[3]: rule[3] = QTextCharFormat() rule[3].setForeground(rule[0]) if rule[1] & Highlighter.Normal: rule[3].setFontWeight(QFont.Normal) if rule[1] & Highlighter.Bold: rule[3].setFontWeight(QFont.Bold) if rule[1] & Highlighter.Italic: rule[3].setFontItalic(True) return def highlightBlock(self, line): for rule in Highlighter.Rules: m = rule[2].match(line) if m: if 'percent' in m.groupdict(): self.setFormat(7, len(line), rule[3]) else: self.setFormat(0, len(line), rule[3]) return