def format(color, style=''): """Return a QTextCharFormat with the given attributes. """ _color = QColor(color[0], color[1], color[2]) _format = QTextCharFormat() _format.setFontFamily("Courier New") _format.setForeground(_color) if 'bold' in style: _format.setFontWeight(QFont.Bold) if 'italic' in style: _format.setFontItalic(True) return _format
def make_formats(self): self.formats = {} for kind, color in ( (Syntax.NORMAL, Qt.black), (Syntax.CONSTANT, Qt.darkCyan), (Syntax.FUNCTION, Qt.blue), (Syntax.KEYWORD, Qt.darkBlue), (Syntax.NUMBER, Qt.darkRed), (Syntax.OPERATOR, Qt.darkMagenta), (Syntax.STRING, Qt.darkYellow), (Syntax.COMMENT, Qt.darkGreen)): fmt = QTextCharFormat() fmt.setFontFamily('Consolas' if WIN else 'Monospace') fmt.setFontFixedPitch(True) fmt.setFontStyleHint(QFont.Monospace) fmt.setForeground(QColor(color)) if kind in {Syntax.CONSTANT, Syntax.FUNCTION, Syntax.KEYWORD, Syntax.OPERATOR}: fmt.setFontCapitalization(QFont.AllUppercase) if kind is Syntax.KEYWORD: fmt.setFontWeight(QFont.DemiBold) elif kind is Syntax.COMMENT: fmt.setFontItalic(True) self.formats[kind] = fmt
def currentFontChanged(self, font): """Do when font is changed using the font combo""" fmt = QTextCharFormat() family = font.family() fmt.setFontFamily(family) self.mergeFormatOnWordOrSelection(fmt)