本页内容

InputMethod QML Type (Singleton)

为 QML 应用程序提供对QInputMethod 的访问。更多内容...

Import Statement: import QtQuick
Since: Qt 6.4

注意:此类型是 QML 单例。QML 引擎中仅存在一个该类型的实例。

属性

方法

详细说明

InputMethod 单例允许访问应用程序的QInputMethod 对象及其所有属性和槽。更多详细信息请参阅QInputMethod 文档。

属性文档

anchorRectangle : rect

输入项目在窗口坐标系中的锚点矩形。

锚点矩形常被各种文本编辑控件(如文本预测弹出窗口)用于跟随文本选区。

animating : bool

当虚拟键盘正在打开或关闭时,该值为 true。

当键盘完全展开或完全收起时,该属性的值为 false。当animating 为true 且visibility 为true 时,键盘正在展开;当animating 为true 且visibility 为 false 时,键盘正在收起。

cursorRectangle : rect

以窗口坐标表示输入项的光标矩形。

各种文本编辑控件(如文本预测弹出窗口)通常会使用光标矩形来跟踪正在输入的文本。

inputDirection : enumeration

当前输入方向。

可能的值:

常量描述
Qt.LeftToRight(默认)项目从左到右排列。
Qt.RightToLeft项目从右向左排列。

inputItemClipRectangle : rect

以窗口坐标表示的输入项裁剪矩形。

各种输入法(例如虚拟键盘)通常会使用该裁剪后的输入矩形来确定可供该输入法使用的屏幕区域大小。

keyboardRectangle : rect

虚拟键盘在窗口坐标系中的几何形状。

如果无法确定键盘的几何尺寸,这里可能是一个空矩形。Android 系统上的浮动键盘即属于这种情况。

locale : Locale

当前的输入区域设置。

visible : bool

虚拟键盘在屏幕上的可见性

对于没有虚拟键盘的设备,该属性的值保持为 false。

另请参阅 show() 和hide()。

方法文档

void commit()

将用户当前正在输入的文字提交到编辑器中。该函数主要用于具有文本预测功能的输入法,以及输入字符所用的字符集与实际追加到编辑器中的字符集不同的输入法。 任何中断文本编写操作的行为都需要通过调用 commit() 函数来刷新编写状态,例如当光标移动到其他位置时。

void hide()

请求关闭虚拟键盘。

通常情况下,应用程序无需调用此函数,因为当文本编辑器失去焦点时(例如父视图关闭时),键盘应自动关闭。

void invokeAction(var a, int cursorPosition)

当用户点击当前正在输入的单词时,由输入项调用此方法,具体由动作a 和给定的cursorPosition 指示。输入法通常利用这些信息向用户提供更多单词建议。

另请参阅 QInputMethod::Action 。

void reset()

重置输入法状态。例如,文本编辑器通常会在插入文本之前调用此方法,以使控件做好接收文本的准备。

当获得焦点的编辑器发生变化时,输入法会自动重置。

void show()

请求打开虚拟键盘。如果平台未提供虚拟键盘,则可见性保持为 false。

通常情况下,应用程序无需调用此函数,因为当文本编辑器获得焦点时,键盘应自动弹出。

void update(enumeration queries)

由输入项调用,用于在编辑器的输入法查询属性发生状态变化时通知平台输入法。调用函数queries 时,必须使用参数来指明发生了哪些变化。输入法可以利用这一点,通过QInputMethodQueryEvent 查询其关心的属性。

特别需要注意的是,每当光标位置发生变化时,调用 update() 非常重要,因为这通常会导致其他查询属性(如周围文本和文本选择范围)也随之变化。为了方便起见,那些通常随光标位置变化的属性已被归类到Qt::ImQueryInput 的值中。

另请参阅 Qt::InputMethodQueries 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.