Форум сайта python.su
Неужели никак нельзя подключить пользовательские шрифты в PyQt и PySide?
Имеется некоторый проект, после сброса его на другой компьютер оказалось так, что на нем не оказалось таких шрифтов, как на компьюетере создателя и все “поехало”. QFont прописываю - бесполезно, так понимаю, он работает только со стандартными шрифтами. Обнаружил какой-то QFontDataBase пробовал его, тоже не получилось. В проекте раз 200 используется QFont, даже если с QFontDataBase получится, неужели все перебивать? Есть еще такой вариант, каким-нибудь тихим способом устанавливать на другие компьютеры шрифты.
Кто что знает по этому поводу и кто чем может подсказать? До сих пор сижу и чувствую себя дураком, писал это чудо месяц и тут на тебе.
Отредактировано Lestoroer (Июль 3, 2016 21:01:59)
Офлайн
LestoroerНичего не ясно. Если на компе нет шрифта, но он вбит, всё работает, рисуя шрифтом по умолчанию В чём проблема?
Обнаружил какой-то QFontDataBase пробовал его, тоже не получилось. В проекте раз 200 используется QFont, даже если с QFontDataBase получится, неужели все перебивать?
from PySide import QtGui import sys def main(): app = QtGui.QApplication(sys.argv) lineEdit = QtGui.QLineEdit() QtGui.QFontDatabase.addApplicationFont("Cleopatra.ttf") font = QtGui.QFont("Cleo",20,QtGui.QFont.Bold,False) font.setUnderline(True); lineEdit.setFont(font); lineEdit.setWindowTitle("QLineEdit Set Font") lineEdit.show(); sys.exit(app.exec_()) if __name__ == '__main__': main()
Офлайн
leonid_10Если честно, я кажется понял фишку. Спасибо тебе). Весь смысл был в том, что сначала передаешь название файла, а потом открываешь шрифт, смотришь название его и передаешь название шрифта (я передавал везде название,фейл). Вот пример кода, может кому понадобится:
#!/usr/bin/python from PyQt5.Qt import QWidget, QLabel, QFont, QPushButton,\ QApplication, QFontDatabase class MyWindow(QWidget): def __init__(self): super().__init__() self.window() def window (self): #размеры окна self.resize(350,100) #создаем текст lbl = QLabel('This text FFFFFFFFFFFFF', self) #применяем какой-то фонтдатабейс и пишем название ФАЙЛА CyrillicOldBold.ttf с его форматом (ну или путь к нему) QFontDatabase.addApplicationFont('CyrillicOldBold.ttf') #Здесь пишем название ШРИФТА font = QFont('CyrillicOld', 20) lbl.setFont(font) button = QPushButton('Кнопка',self) button.clicked.connect(self.exit_app) button.move(130,50) def exit_app (self): self.close() if __name__ == '__main__': import sys app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_())
Отредактировано Lestoroer (Июль 4, 2016 06:20:54)
Офлайн