Использование внешних шрифтов PySide2

145
12 октября 2021, 01:00

Как я могу использовать шрифты в стилях программы на PySide2, которые не установлены на комп, а просто находятся в папке с проектом в виде файла? Например Roboto.ttf

Answer 1

static PySide2.QtGui.QFontDatabase.addApplicationFont(fileName)

Загружает шрифт из файла, указанного в fileName, и делает его доступным для приложения. Возвращается идентификатор, который можно использовать для повторного удаления шрифта с помощью removeApplicationFont() или для получения списка фамилий, содержащихся в шрифте.

import glob
import os
import sys
from PyQt5.QtGui import QFontDatabase, QFont
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QGridLayout

app = QApplication(sys.argv)
names = []
for path in glob.glob("D:/_Qt/Python-Examples/_PyQt5/Font/Fonts/Roboto/*.ttf"):
    names.append(os.path.basename(path.replace(".ttf", "")).replace("-", ""))
    fid = QFontDatabase.addApplicationFont(os.path.abspath(path))
w = QWidget()
w.setWindowTitle("Roboto Fonts")
layout = QGridLayout(w)
for row in range(4):
    for col in range(4):
        layout.addWidget(QLabel(names[row * 4 + col],
                                font=QFont(names[row * 4 + col], 16)),    # , 26)),
                         row, col, 1, 1)
w.show()
sys.exit(app.exec_())

Answer 2

Например, так:

app = QtGui.QApplication(sys.argv) QtGui.QFontDatabase.addApplicationFont('путь/к/шрифту')

READ ALSO
расположение строк

расположение строк

не ищу готового решения, но если его получу буду благодарен , больше за советом здесьили что я должнен почитать, так вот есть меню ,я хочу узнать...

94
Замена бесконечного цикла

Замена бесконечного цикла

Можно ли заменить следующий бесконечный цикл на обычный цикл? Слышал, что всегда можно, но не понимаю как

198
Оптимизация кода по обращению к памяти

Оптимизация кода по обращению к памяти

Необходимо написать оптимальную по обращению к памяти функцию для обрезки пробелов справаСама обрезка сложностей не вызывает, непонятно,...

225
Не выходит вывести результат в следующей программе

Не выходит вывести результат в следующей программе

Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε (табл8

168