Первая часть будет такой же. потому что все они относятся к одной и той же настройке.
Общая настройка
Я установил 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
Тестовая программа:
Код: Выделить всё
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()
Это правильно отображает виртуальную клавиатуру при фокусировке. в любой QLineEdit.
Вопрос 3
Можно ли программно установить свойства QtVirtualKeyboard?Особая необходимость — установить язык OSK (моя система — LANG=en_US.UTF-8, но моя системная клавиатура — это IT, и я нужен OSK el.GR).
Другие настройки (например, размещение OSK внизу окна, а не внизу экрана) было бы «неплохо иметь».
Подробнее здесь: https://stackoverflow.com/questions/791 ... k-language
Мобильная версия