def __init__(self,parent=None): super(QtReduceFontComboBox,self).__init__() fdb = QFontDatabase() l = [] self.fontDict = {} for fam in fdb.families(QFontDatabase.Latin): for sty in fdb.styles(fam): if not fam in l and fdb.isFixedPitch(fam,sty) \ and not fdb.bold(fam,sty) and not fdb.italic(fam,sty) \ and self.__osxHack(fam): fontLogger.debug("family=%s, style=%s, isFixedPitch=%s" % (fam, sty, fdb.isFixedPitch(fam,sty))) sizes = fdb.smoothSizes(fam,sty) if sizes: font = fdb.font(fam,sty,sizes[0]) if not font.exactMatch(): fontLogger.debug("no exactMatch for %s %s %s" % (fam,sty,sizes[0])) l += [fam] self.fontDict.update({str(fam):font}) l.sort self.addItems(l) self.currentIndexChanged.connect(self.currentIndexChangedHandler)