Я пытаюсь заставить QLineEdit
принять ввод от uim
модуля метода ввода.
Я работаю в Manjaro Linux, и uim
работает без проблем для других приложений, которые я использую.
PySide2
устанавливается pip в виртуальной среде.
Если я запускаю следующий код, я могу помещать только английские символы в виджет QLineEdit
.
from PySide2.QtWidgets import QLineEdit, QApplication
from PySide2.QtCore import Qt
app = QApplication([])
widget = QLineEdit()
widget.setAttribute(Qt.WA_InputMethodEnabled)
widget.show()
app.exec_()
Итак, я проверил путь плагинов для PySide2
, запустив следующий скрипт:
from PySide2.QtCore import QLibraryInfo
print(QLibraryInfo.location(QLibraryInfo.PluginsPath))
, который печатает: ${venv}/lib/python3.7/site-packages/PySide2/Qt/plugins
Затем я сравнил системный каталог плагинов Qt и тот, что внутривиртуальная среда:
$ ls -1 /usr/lib/qt/plugins/platforminputcontexts/
libcomposeplatforminputcontextplugin.so
libibusplatforminputcontextplugin.so
libqtvirtualkeyboardplugin.so
libuimplatforminputcontextplugin.so
$ ls -1 ${venv}/lib/python3.7/site-packages/PySide2/Qt/plugins/platforminputcontexts/
libcomposeplatforminputcontextplugin.so
libibusplatforminputcontextplugin.so
libqtvirtualkeyboardplugin.so
Вы видите, что в пути PySide2
plugins отсутствует файл libuimplatforminputcontextplugin.so
.Я мог бы использовать uim
, когда скопировал отсутствующий файл библиотеки в путь плагинов PySide2
, но при этом:
- не обеспечивал бы работу других методов ввода (например,
ibus
) - усложняет упаковку для других платформ
Каким было бы решение использовать методы ввода, такие как uim
с установкой в пипсах PySide2
?