我的应用程序包含两个不同的功能。第一个是具有拖放功能的QListWidget
(未子类化),基本上显示了一些可以重新排序的图标。第二个是自定义QLineEdit
控件,我通过该控件实现了一些自定义焦点信号,以激活虚拟键盘。
当我运行该应用程序的桌面版本时,一切都会按预期运行,但是当我在嵌入式Linux设备(一台iMX7平板电脑)上运行它时,就会发生一些奇怪的事情:
重新排列QListWidget中的项目后,得到消息:
“此插件不支持setParent!”
然后我的自定义 QLineEdit控件停止注册对信号的关注,以便激活虚拟键盘。
我对该主题进行了一些研究,但没有获得很多见识。同样通过搜索Qt源树,我发现生成此警告消息的唯一位置是在QPlatformWindow
类中,这意味着与QPA有关。
我尚未包括任何源代码,因为我真的不知道会有什么帮助。只是几个指针;由于我不希望在设备上使用X系统,因此我正在使用直接写入Linux帧缓冲区(linuxfb
)来运行嵌入式应用程序。同样在该消息之前,我收到了一堆
未知系统光标19
消息。 Qt版本在台式机上为5.9,在设备上为5.5,但似乎没有任何影响(至少到现在为止)。
您对此问题有任何建议或想法吗?如果您需要任何代码段来澄清问题,请提出要求。
更新:我确认问题仍然存在于常规的QLineEdit控件中,而不是子类。因此,在列表中拖放后,QLineEdit无法通过触摸或鼠标单击获得焦点。