Beispiel #1
0
def refresh_font_db() -> None:
    # XXX:
    # Qt doesn't expose API to refresh the fonts, so we try to trick it into
    # invalidating its internal database by adding a dummy application font.
    # On Linux, this works with `fc-cache -r`.
    font_db = QFontDatabase()
    font_db.addApplicationFont(str(ASSETS_DIR / "AdobeBlank.ttf"))
    font_db.removeAllApplicationFonts()
Beispiel #2
0
 def set_font(self, family_name):
     font_db = QFontDatabase()
     font_db.removeAllApplicationFonts()
     font_archive = ZipFile(f'static/fonts/{family_name}.zip')
     for font_name in font_archive.namelist():
         with font_archive.open(font_name) as font_file:
             font_data = font_file.read()
             font_data_as_bytearray = QByteArray(font_data)
             font_db.addApplicationFontFromData(font_data_as_bytearray)
     family_name = family_name.replace('_', ' ')
     self.setFont(QFont(family_name, 12))
Beispiel #3
0
    def setTextFont(self, fileName, size=92):
        print(size)

        bin = self.readFontFileAsBinary(fileName)
        QFontDatabase.removeAllApplicationFonts()
        #id = QFontDatabase.addApplicationFont(fileName)
        id = QFontDatabase.addApplicationFontFromData(bin)
        try:
            family = QFontDatabase.applicationFontFamilies(id)[0]
        except:
            return "Not found"
        font = QFontDatabase.font(self.fontsDB, family, 'bold', size)
        font.setStrikeOut(False)
        self.ui.textEdit.setFont(font)
        self.ui.textEdit.setCurrentFont(font)
        self.ui.chkObserve.setEnabled(True)
        self.ui.chkHB.setEnabled(True)
        return family