【发布时间】:2017-12-04 12:53:37
【问题描述】:
如果我使用 Android 原生虚拟键盘,QLineEdit 无法获取所有输入的单词。 (Qt 5.7,Android 6)
如果我输入“强制输入”(如图所示)并调用
QLineEdit::text()
我只得到“Force”。
如何获取全文?
【问题讨论】:
标签: android qt virtual-keyboard
如果我使用 Android 原生虚拟键盘,QLineEdit 无法获取所有输入的单词。 (Qt 5.7,Android 6)
如果我输入“强制输入”(如图所示)并调用
QLineEdit::text()
我只得到“Force”。
如何获取全文?
【问题讨论】:
标签: android qt virtual-keyboard
问题是“输入”仍在输入/输入(注意下划线)并且尚未提交给应用程序。您现在可以使用 QInputMethod::commit 强制提交所有内容:
将用户当前正在撰写的单词提交给编辑器。这 具有文本预测功能的输入法最需要该功能 脚本用于输入的功能和方法 字符与实际附加到的脚本不同 编辑。任何打断文本撰写的动作 需要通过调用 commit() 函数刷新作曲状态, 例如当光标移动到别处时。
之后,您应该能够使用QLineEdit::text 检索所有文本。
替代方案:QLineEdit::displayText
正如here 所讨论的那样,可以使用QLineEdit::displayText 而无需先调用QInputMethod::commit。
【讨论】:
QLineEdit::displayText 没有帮助,但这个决定帮助了我 QInputMethod *input = QApplication::inputMethod(); input->commit(); 谢谢!