Почему функция перетаскивания QListWidget мешает сигналам фокуса в QLineEdit? - PullRequest
0 голосов
/ 26 ноября 2018

Мое приложение включает в себя две разные функции.Первый - QListWidget с возможностью перетаскивания (без подклассов), который в основном показывает некоторые значки, которые можно переупорядочить.Второй элемент - это пользовательский элемент управления QLineEdit, который я сделал для реализации некоторых пользовательских сигналов фокусировки, чтобы активировать виртуальную клавиатуру.

Когда я запускаю настольную версию приложения, все работает как положено, нокогда я запускаю его на своем встроенном устройстве Linux (панельном ПК iMX7), происходит что-то своеобразное:

после того, как я переставлю элементы в QListWidget, я получаю сообщение:

«Этот плагин не поддерживает setParent!»

, а затем мои пользовательские элементы управления QLineEdit прекращают регистрировать фокус на сигнале , чтобы виртуальная клавиатура былаАктивированный .

Я провел некоторое исследование по этой теме, не получая много понимания.Также, просматривая исходное дерево Qt, я обнаружил, что единственное место, где генерируется это предупреждающее сообщение, находится в классе QPlatformWindow, что подразумевает, что это как-то связано с QPA.

Я не включаюникакого исходного кода пока нет, потому что я действительно не знаю, что было бы полезно.Еще несколько указателей;Я запускаю мое встроенное приложение, используя прямую запись в кадровый буфер Linux (linuxfb), поскольку мне не нужна система X на устройстве.Также перед этим сообщением я получаю кучу

Неизвестный системный курсор 19

сообщений.Версия Qt - 5.9 для настольного компьютера и 5.5 для устройства, но, похоже, это никак не влияет (по крайней мере, до сих пор).

Есть ли у вас какие-либо предложения или идеи по поводу проблемы?Если вам нужны какие-то фрагменты кода для уточнения, попросите их.

ОБНОВЛЕНИЕ: Я подтвердил, что проблема сохраняется с обычным элементом управления QLineEdit, а не с подклассом.Поэтому после перетаскивания в списке QLineEdit не может сфокусироваться прикосновением или щелчком мыши.

...