QtVirtualKeyboard/PyQt6 – как программно выбрать язык OSK?Python

Программы на Python
Ответить
Anonymous
 QtVirtualKeyboard/PyQt6 – как программно выбрать язык OSK?

Сообщение Anonymous »

У меня есть несколько вопросов относительно использования QtVirtualKeyboard в PyQt6, поэтому, поскольку политика StackOverflow — это «всего один вопрос», я опубликую несколько вопросов.
Первая часть будет такой же. потому что все они относятся к одной и той же настройке.
Общая настройка
Я установил QtVirtualKeyboard, следуя этому ответу (БОЛЬШОЕ спасибо @eyllanesc!) .
Точные команды:

Код: Выделить всё

python3 -m venv venv
venv/bin/pip install -U pip wheel PyQt6 aqtinstall
QT_PREFIX_PATH=$(venv/bin/python -c "from PyQt6.QtCore import QLibraryInfo; print(QLibraryInfo.path(QLibraryInfo.LibraryPath.PrefixPath), end=None)")
QT_VERSION_STR=$(venv/bin/python -c "from PyQt6.QtCore import QT_VERSION_STR; print(QT_VERSION_STR, end=None)")
QT_VERSION_STR=6.7.3
venv/bin/python -m aqt install-qt linux desktop $QT_VERSION_STR -m qtvirtualkeyboard --outputdir qt
cp -p qt/$QT_VERSION_STR/gcc_64/lib/libQt6VirtualKeyboard.so.$QT_VERSION_STR $QT_PREFIX_PATH/lib/libQt6VirtualKeyboard.so.6
cp -p qt/$QT_VERSION_STR/gcc_64/lib/libQt6VirtualKeyboardSettings.so.$QT_VERSION_STR $QT_PREFIX_PATH/lib/libQt6VirtualKeyboardSettings.so.6
mkdir -p $QT_PREFIX_PATH/plugins/platforminputcontexts
cp -p qt/$QT_VERSION_STR/gcc_64/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so $QT_PREFIX_PATH/plugins/platforminputcontexts
#cp -pr qt/$QT_VERSION_STR/gcc_64/plugins/virtualkeyboard $QT_PREFIX_PATH/plugins
cp -pr qt/$QT_VERSION_STR/gcc_64/qml/QtQuick/VirtualKeyboard $QT_PREFIX_PATH/qml/QtQuick
mkdir -p $QT_PREFIX_PATH/qml/Qt/labs
cp -pr qt/$QT_VERSION_STR/gcc_64/qml/Qt/labs/folderlistmodel $QT_PREFIX_PATH/qml/Qt/labs
Примечание: мне пришлось принудительно установить QT_VERSION_STR=6.7.3, потому что при использовании значения, заданного сценарием Python выше (6.7.1), у меня было ошибка времени выполнения (что-то 6.7.3 не найдено); может ли это указывать на то, что в моих настройках что-то не так?
Тестовая программа:

Код: Выделить всё

from PyQt6.QtWidgets import QApplication, QWidget, QMainWindow, QLineEdit, QVBoxLayout

import sys
import os
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard"

class MaiWindow(QMainWindow):
def __init__(self):
super().__init__()
self.line_edit = QLineEdit()
self.line_edit2 = QLineEdit()
self.layout = QVBoxLayout()
self.main_widget = QWidget()
self.main_widget.setLayout(self.layout)
self.layout.addWidget(self.line_edit)
self.layout.addWidget(self.line_edit2)
self.setCentralWidget(self.main_widget)

app = QApplication(sys.argv)

window = MaiWindow()
window.show()

app.exec()
Программа запускается с использованием: venv.hide/bin/python test.py.
Это правильно отображает виртуальную клавиатуру при фокусировке. в любой QLineEdit.
Вопрос 3
Можно ли программно установить свойства QtVirtualKeyboard?Особая необходимость — установить язык OSK (моя система — LANG=en_US.UTF-8, но моя системная клавиатура — это IT, и я нужен OSK el.GR).
Другие настройки (например, размещение OSK внизу окна, а не внизу экрана) было бы «неплохо иметь».

Подробнее здесь: https://stackoverflow.com/questions/791 ... k-language
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»