Я пытаюсь понять, как использовать виртуальную клавиатуру для сенсорного экрана, используя python 3.8 и PyQt5 на Windows.
Я видел, что у Qt есть собственный плагин QtVirtualKeyboard. Я в значительной степени следил за тем, что было сделано по этой ссылке , сначала установив Qt 5.15 с поддержкой виртуальной клавиатуры, а затем настроив переменные среды.
Простой пример кода:
import os
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLineEdit
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QWidget
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard"
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.line_edit = None
self.init_ui()
def init_ui(self):
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)
if __name__ == "__main__":
app = QApplication(sys.argv)
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
Идея состоит в том, чтобы отображать клавиатуру при касании строки редактирования. На данный момент окно отображается правильно, но клавиатура не выскакивает. Я попытался настроить ("QT_DIR", "QT_PLUGIN_PATH", ...), как указано в приведенной выше ссылке, но ничего не помогло.
Я знаю, что мне что-то там не хватает, но не могу понять, что именно. Спасибо за помощь!