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