Qt5 QTreeView редактируемый с виртуальной клавиатурой

Работа в киоске с сенсорным экраном, в котором есть виджет виртуальной клавиатуры. Во всех диалоговых окнах виртуальная клавиатура является единственным способом бесконтактного ввода. Сейчас я работаю над QTreeView для отображения имен файлов с использованием QFileSystemModel, и я добавил столбец с именем Новое имя (все остальные столбцы, кроме имени, скрыты). Я переопределил createEditor () и destroyEditor () для делегата, который я назначил QTreeView, и переопределил data () и setData () для модели. Переопределение createEditor () возвращает указатель на локальный объект QLineEdit, чтобы я мог контролировать результаты редактирования (подключив их к объекту данных моей модели для этого нового столбца).

С моей физической клавиатурой я могу вносить изменения в ячейку «Новое имя» для данной строки, но я не могу понять, как печатать на моей виртуальной клавиатуре, не теряя фокус и не вызывая destroyEditor () для элемента, который я редактирую. Любые идеи относительно того, как это можно сделать? Я копался в коде Qt, но пока не повезло.

0

Решение

Виртуальная клавиатура не должна иметь никаких фокусируемых виджетов. Это должно быть нейтральным по отношению к фокусу. Тогда он не будет красть фокус. Этот ответ есть рабочий пример, который не крадет фокус и синтезирует события нажатия клавиш, которые публикуются в сфокусированном виджете.

0

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

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

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