python — ввод с клавиатуры Qt на другом языке

Хорошо в текстовых процессорах, когда я меняю шрифт на 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: язык здесь не имеет значения.

0

Решение

Возможно, шрифт не распознается в вашем приложении. Проверьте, установлен ли у вас шрифт. Вы также можете попробовать добавить 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]))
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]