使用具有虚拟键盘小部件的触摸屏自助终端系统。在所有对话框中,虚拟键盘是非触摸输入的唯一方法。我现在正在使用QTileView来使用QFileSystemModel显示文件名,并且我添加了一个名为New Name的列(除Name之外的所有其他列都被隐藏)。我已经为我分配给QTreeView的委托重写了createEditor()和destroyEditor(),并覆盖了模型的data()和setData()。 createEditor()覆盖返回一个指向本地QLineEdit对象的指针,这样我就可以控制编辑结果(将它们插入到我的模型的新列的数据对象中)。
使用我的物理键盘,我可以更改给定行的“新名称”单元格,但我无法弄清楚如何键入我的虚拟键盘而不会失去焦点并在项目I'上调用destroyEditor()。我正在编辑。关于如何做到这一点的任何想法?我已经深入研究了Qt代码,但到目前为止还没有运气。
答案 0 :(得分:0)
虚拟键盘必须没有任何可聚焦的小部件。它应该是焦点中立的。那么它不会偷走焦点。 This answer有一个工作示例,它不会窃取焦点并合成发布到焦点小部件的按键事件。