QInputMethod Class
QInputMethod クラスは、アクティブなテキスト入力メソッドへのアクセスを提供します。詳細...
| ヘッダー: | #include <QInputMethod> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QObject |
パブリック型
| enum | Action { Click, ContextMenu } |
プロパティ
|
|
パブリック関数
| QRectF | anchorRectangle() const |
| QRectF | cursorRectangle() const |
| Qt::LayoutDirection | inputDirection() const |
| QRectF | inputItemClipRectangle() const |
| QRectF | inputItemRectangle() const |
| QTransform | inputItemTransform() const |
| bool | isAnimating() const |
| bool | isVisible() const |
| QRectF | keyboardRectangle() const |
| QLocale | locale() const |
| void | setInputItemRectangle(const QRectF &rect) |
| void | setInputItemTransform(const QTransform &transform) |
| void | setVisible(bool visible) |
パブリックスロット
| void | commit() |
| void | hide() |
| void | invokeAction(QInputMethod::Action a, int cursorPosition) |
| void | reset() |
| void | show() |
| void | update(Qt::InputMethodQueries queries) |
シグナル
| void | anchorRectangleChanged() |
| void | animatingChanged() |
| void | cursorRectangleChanged() |
| void | inputDirectionChanged(Qt::LayoutDirection newDirection) |
| void | inputItemClipRectangleChanged() |
| void | keyboardRectangleChanged() |
| void | localeChanged() |
| void | visibleChanged() |
静的パブリックメンバー
| QVariant | queryFocusObject(Qt::InputMethodQuery query, const QVariant &argument) |
詳細な説明
QInputMethod は、プラットフォームのテキスト入力メソッドと統合するためにテキストエディタで使用されるほか、より一般的には、仮想キーボードの表示状態やキーボードの寸法など、テキスト入力メソッドに関連するさまざまな情報を照会するためにアプリケーションビューで使用されます。
Qt Quick また、Qt global object を通じて、Qt.inputMethod プロパティとして QML から QInputMethod にアクセスすることもできます。
メンバ型のドキュメント
enum QInputMethod::Action
ユーザーが実行した操作の種類を示します。
| 定数 | 値 | 説明 |
|---|---|---|
QInputMethod::Click | 0 | 通常のクリック/タップ |
QInputMethod::ContextMenu | 1 | コンテキストメニューのクリック/タップ(例:右クリック、またはタップして長押し) |
関連項目: invokeAction()。
プロパティのドキュメント
[read-only] anchorRectangle : QRectF
入力項目のアンカー矩形をウィンドウ座標で指定します。
アンカー矩形は、テキスト選択範囲を追跡するために、テキスト予測ポップアップなど、さまざまなテキスト編集コントロールでよく使用されます。
アクセス関数:
| QRectF | anchorRectangle() const |
通知シグナル:
| void | anchorRectangleChanged() |
[read-only] animating : bool
仮想キーボードが開いたり閉じたりしているときにtrueになります。
キーボードが完全に開いているか閉じているときは、animatingはfalseになります。animating がtrue で、visibility がtrue の場合、キーボードは開かれている最中です。animating がtrue で、visibility がfalseの場合、キーボードは閉じられている最中です。
アクセス関数:
| bool | isAnimating() const |
Notifierシグナル:
| void | animatingChanged() |
[read-only] cursorRectangle : QRectF
入力項目のカーソル矩形をウィンドウ座標で指定します。
カーソル矩形は、入力中のテキストを追跡するために、テキスト予測ポップアップなど、さまざまなテキスト編集コントロールでよく使用されます。
アクセス関数:
| QRectF | cursorRectangle() const |
通知シグナル:
| void | cursorRectangleChanged() |
[read-only] inputDirection : Qt::LayoutDirection
現在の入力方向。
アクセス機能:
| Qt::LayoutDirection | inputDirection() const |
通知信号:
| void | inputDirectionChanged(Qt::LayoutDirection newDirection) |
[read-only] inputItemClipRectangle : QRectF
ウィンドウ座標での入力項目のクリップされた矩形。
切り取られた入力矩形は、さまざまな入力方式(例:仮想キーボード)において、その入力方式に割り当てられる画面領域のサイズを決定するために頻繁に使用されます。
アクセス関数:
| QRectF | inputItemClipRectangle() const |
通知シグナル:
| void | inputItemClipRectangleChanged() |
[read-only] keyboardRectangle : QRectF
ウィンドウ座標系における仮想キーボードの形状。
キーボードのサイズが不明な場合、これは空の矩形となる可能性があります。Androidのフローティングキーボードがこれに該当します。
アクセス関数:
| QRectF | keyboardRectangle() const |
Notifierシグナル:
| void | keyboardRectangleChanged() |
[read-only] locale : QLocale
現在の入力ロケール。
アクセス関数:
| QLocale | locale() const |
通知シグナル:
| void | localeChanged() |
[read-only] visible : bool
画面上の仮想キーボードの表示状態
仮想キーボードがないデバイスでは、入力メソッドの表示はfalseのままとなります。
アクセス機能:
| bool | isVisible() const |
Notifierシグナル:
| void | visibleChanged() |
メンバ関数のドキュメント
[slot] void QInputMethod::commit()
ユーザーが現在入力している単語をエディタにコミットします。この関数は、主にテキスト予測機能を備えた入力メソッドや、文字入力に使用されるスクリプトと、実際にエディタに追加されるスクリプトが異なるメソッドで必要とされます。 テキストの作成を中断するあらゆる操作(たとえば、カーソルを別の場所に移動させる場合など)では、commit() 関数を呼び出して作成状態をフラッシュする必要があります。
[slot] void QInputMethod::hide()
仮想キーボードを閉じるよう要求します。
通常、アプリケーションがこの関数を呼び出す必要はありません。テキストエディタがフォーカスを失ったとき(たとえば、親ビューが閉じられたときなど)、キーボードは自動的に閉じられるはずです。
QRectF QInputMethod::inputItemRectangle() const
入力項目の座標系における、その項目のジオメトリを返します。
setInputItemRectangle()も参照してください 。
QTransform QInputMethod::inputItemTransform() const
入力項目の座標からウィンドウ座標への変換を返します。
setInputItemTransform()も参照してください 。
[slot] void QInputMethod::invokeAction(QInputMethod::Action a, int cursorPosition)
ユーザーが現在入力中の単語をタップした際に、入力項目によって呼び出されます。これは、アクション `a ` および指定された `cursorPosition` によって示されます。入力メソッドでは、この情報を利用して、ユーザーにさらに多くの単語候補を提示することがよくあります。
[static] QVariant QInputMethod::queryFocusObject(Qt::InputMethodQuery query, const QVariant &argument)
パラメータ `argument ` を指定して、現在のフォーカスオブジェクトに `query ` を送信し、その結果を返します。
[slot] void QInputMethod::reset()
入力メソッドの状態をリセットします。たとえば、テキストエディタでは通常、テキストを挿入する前にこのメソッドを呼び出し、ウィジェットがテキストを受け入れる準備ができるようにします。
フォーカスされているエディタが変更されると、入力方式は自動的にリセットされます。
void QInputMethod::setInputItemRectangle(const QRectF &rect)
入力項目のジオメトリを、入力項目の座標系においてrect となるように設定します。これは、シーン内で項目が移動されたり、フォーカスが変更されたりした際に、QQuickCanvasなどのフォーカスを持つウィンドウによって更新される必要があります。
inputItemRectangle()も参照してください 。
void QInputMethod::setInputItemTransform(const QTransform &transform)
入力項目の座標からウィンドウ座標への変換を `transform` に設定します。シーン内で項目が移動されるたびに、`QQuickCanvas` などのフォーカスされているウィンドウによって、項目の変換が更新される必要があります。
inputItemTransform()も参照してください 。
void QInputMethod::setVisible(bool visible)
キーボードの表示/非表示を制御します。show() の呼び出しと同等です(visible がtrue の場合)。あるいは、hide() の呼び出しと同等です(visible がfalse の場合)。
isVisible()、show()、およびhide()も参照してください 。
[slot] void QInputMethod::show()
仮想キーボードの表示を要求します。プラットフォームが仮想キーボードを提供していない場合、可視性は false のままとなります。
通常、アプリケーションがこの関数を呼び出す必要はありません。テキストエディタがフォーカスを獲得すると、キーボードは自動的に開くはずです。
[slot] void QInputMethod::update(Qt::InputMethodQueries queries)
エディタの入力方式クエリ属性に状態の変化が生じた際、プラットフォームの入力方式に通知するために、入力項目から呼び出されます。queries 関数を呼び出す際は、何が変更されたかを示すためにパラメータを使用する必要があります。これにより、各入力方式はQInputMethodQueryEvent を使用して、関心のある属性についてクエリを実行できるようになります。
特に、カーソル位置が変更されるたびに `update` を呼び出すことが重要です。これは、カーソル位置の変更によって、周囲のテキストやテキストの選択範囲といった他のクエリアトリビュートも変更されることが多いためです。カーソル位置とともに頻繁に変更される属性は、利便性のため `Qt::ImQueryInput ` の値にまとめられています。
© 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.