Хорошо в текстовых процессорах, когда я меняю шрифт на Preeti
ввод «asdfgh» приведет к отображению «बकमानज». Я пытался изменить QPlainTextEdit
шрифт к Preeti
, но он все еще печатает «asdfgh»
Как можно добиться того же в Qt?
Вот что я делаю:
@pyqtSlot()
def select_font(self):
font, ok = QFontDialog.getFont(self)
if ok:
## the text in ui.text_edit is in unicode
self.ui.text_edit.setFont(font)
Очевидно, шрифт существует в системе. Отображение шрифта также корректно (при загрузке из файла .txt). То, что не работает, печатает в этом шрифте. Я имею в виду отображение клавиш от клавиатуры к выбранному шрифту.
Помощь в C ++ или Python: язык здесь не имеет значения.
Возможно, шрифт не распознается в вашем приложении. Проверьте, установлен ли у вас шрифт. Вы также можете попробовать добавить preeti.ttf
файл в ресурсы и добавление его в приложение, используя:
QFontDatabase::addApplicationFont(“:/fonts/preeti.ttf”);
Я нашел таблицы стилей, чтобы быть более надежным (чем использование setFont(QFont)
) для установки шрифта. использование textEdit->setStyleSheet(font-family: 'Preeti');
,
установка таблицы стилей из QFontDialog () может быть сделана следующим образом в Python
@pyqtSlot()
def select_font(self):
font, ok = QFontDialog.getFont(self)
if ok:
params = font.toString().split(",") # The string is :"Preeti,9,-1,5,50,0,0,0,0,0"self.ui.text_edit.setStyleSheet("font-family :%s;font-size:%spt;" % (params[0], params[1]))
Других решений пока нет …