このページでは

TextInput QML Type

編集可能なテキスト行を表示します。詳細...

Import Statement: import QtQuick
Inherits:

Item

Inherited By:

TextField

プロパティ

信号

方法

詳細な説明

TextInput タイプは、編集可能なプレーンテキストを 1 行表示します。

TextInputは、1行のテキスト入力を受け付けるために使用されます。TextInputアイテムには入力制約を設定できます(たとえば、validator やinputMask を使用)。また、echoMode を適切な値に設定することで、TextInputをパスワード入力フィールドとして使用できるようになります。

ユーザーがReturnキーまたはEnterキーを押してテキストを送信したことに反応するには、accepted()シグナルを処理します。ReturnキーまたはEnterキーが押され、テキスト入力のフォーカスが外れると、editingFinished()が発信されます。ユーザーが何らかの方法でテキストを編集すると、textEdited()が発信されます。ほとんどの場合、textChanged() よりもこれらのシグナルを使用することを推奨します。

macOS では、Home/End キーに対する上/下キーのキーバインディングは明示的に無効化されています。このようなキーバインディングを(どのプラットフォームでも)実装したい場合は、QML で構築する必要があります。

TextEdit およびTextも参照してください 。

プロパティのドキュメント

acceptableInput : bool [read-only]

このプロパティは、バリデータまたは入力マスクが設定されていない限り、常に真となります。バリデータまたは入力マスクが設定されている場合、このプロパティが真となるのは、現在のテキストがバリデータまたは入力マスクによって最終的な文字列(中間的な文字列としてではなく)として許容される場合のみです。

activeFocusOnPress : bool

TextInput がマウスのクリック時にアクティブになるかどうか。デフォルトでは、これはtrueに設定されています。

autoScroll : bool

テキストが幅より長い場合に、TextInput をスクロールさせるかどうか。デフォルトでは true に設定されています。

ensureVisible()も参照してください 。

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

これらのプロパティは、コンテンツ周囲のパディングを指定します。このスペースは、contentWidth およびcontentHeight に加えて確保されます。

個々のパディングプロパティは、明示的に設定されていない限り、padding プロパティの値を継承します。たとえば、padding が4 に設定され、leftPadding が8 に設定されている場合、8 が左パディングとして使用されます。

注: TextInput に明示的な幅または高さが指定されている場合 、関連するパディング値を収容できる十分な大きさであることを確認する必要があります。例えば、topPadding とbottomPadding が10 に設定されているにもかかわらず、TextInput の高さが20 にしか設定されていない場合、テキストをレンダリングするための十分な垂直スペースが確保できず、テキストが切り取られたように表示されます。

canPaste : bool [read-only]

TextInput が書き込み可能であり、クリップボードの内容がTextInput への貼り付けに適している場合、trueを返します。

canRedo : bool [read-only]

TextInput が書き込み可能であり、undone 操作でやり直せるものがある場合、true を返します。

canUndo : bool [read-only]

TextInput が書き込み可能であり、かつ元に戻すことができる以前の操作が存在する場合、true を返します。

color : color

テキストの色。

contentHeight : real [read-only]

テキストの高さを返します。テキストが設定された高さに収まらない場合は、収まりきらなかった部分の高さも含まれます。

contentWidth : real [read-only]

テキストの幅を返します。wrapMode が設定されている場合、改行不足によって覆い隠された部分を含む、その範囲を超える幅も含まれます。

cursorDelegate : Component

TextInput のカーソル用デリゲート。

TextInput に対して cursorDelegate を設定すると、標準のカーソルの代わりにこのデリゲートがカーソルの描画に使用されます。カーソルが必要になった際、TextInput によってデリゲートのインスタンスが作成・管理され、そのインスタンスの x プロパティは、現在の文字の左上隅から 1 ピクセル手前の位置になるように設定されます。

なお、デリゲートコンポーネントのルートアイテムは、QQuickItem またはQQuickItem を継承したアイテムでなければなりません。

cursorPosition : int

TextInput 内のカーソルの位置。カーソルは文字と文字の間に配置されます。

注: この場合の「 文字」とは 、QChar オブジェクトの文字列、つまり 16 ビットの Unicode 文字を指し、その位置はこの文字列内のインデックスと見なされます。 これは、必ずしもその表記体系における個々のグラフェムに対応するとは限りません。なぜなら、1つのグラフェムが、サロゲートペア、言語的合字、発音区別符号などの場合のように、複数のUnicode文字によって表されることがあるからです。

displayText echoMode が に設定されている場合、この挙動は異なります。その場合、 内のテキストがそうでない場合でも、各 は「ナロー」文字となります(cursorPositionは常に1ずつ移動します)。TextInput.Password TextInput passwordCharacter

cursorRectangle : rectangle [read-only]

テキスト入力フィールド内に標準のテキストカーソルが表示される矩形。読み取り専用。

カスタムcursorDelegate の位置と高さは、cursorRectangleが変更されると、それに合わせて自動的に更新されます。デリゲートの幅は、カーソル矩形の変更の影響を受けません。

cursorVisible : bool

TextInput がカーソルを表示しているときにtrueに設定します。

このプロパティは、TextInput がアクティブなフォーカスを取得した際に設定および解除されるため、他のプロパティをカーソルの表示状態に応じてバインドすることが可能です。自動的に設定および解除されるため、手動で値を設定する場合は、その値が上書きされる可能性があることに留意する必要があります。

スクリプト内で直接設定することも可能です。例えば、KeyProxyがキー入力をこのアイテムに転送する場合、その際にアクティブに見えるようにしたい(ただし、実際にはアクティブなフォーカスを与えない)といった場合です。

以下の QML のように、アイテム上で直接設定すべきではありません。指定した値は、フォーカスの変更に伴い上書きされ、失われてしまうためです。

TextInput {
    text: "Text"
    cursorVisible: false
}

上記のスニペットでは、TextInput がアクティブなフォーカスを獲得した際、カーソルは依然として表示されます。

displayText : string [read-only]

これは、TextInput に表示されるテキストです。

echoMode がTextInput::Normalに設定されている場合、このプロパティはTextInput::text プロパティと同じ値を保持します。それ以外の場合は、このプロパティにはユーザーに表示されるテキストが保持され、text プロパティには実際に入力されたテキストが保持されます。

注: TextInput::text プロパティとは異なり 、このプロパティには入力方式による部分的なテキスト入力が含まれます。

「preeditText」も参照してください 。

echoMode : enumeration

TextInput でのテキストの表示方法を指定します。

定数説明
TextInput.Normalテキストをそのまま表示します。(デフォルト)
TextInput.Password実際の文字の代わりに、passwordCharacter を表示します。編集中、新しく入力された文字は、passwordMaskDelay プロパティで指定された短い期間、プレーンテキストで表示されます。
TextInput.NoEcho何も表示しません。
TextInput.PasswordEchoOnEditTextInput.Password と同様に、コンテンツがマスクされます。編集中、TextInput にアクティブなフォーカスがある間は、新しく入力された文字が平文で表示されます。

effectiveHorizontalAlignment : enumeration [read-only]

添付プロパティ `LayoutMirroring::enabled ` を使用してアプリケーションのレイアウトをミラーリングする場合、テキストの水平方向の配置もミラーリングされます。ただし、プロパティ `horizontalAlignment ` は変更されません。TextInput の実際の水平方向の配置を確認するには、読み取り専用プロパティ `effectiveHorizontalAlignment` を使用してください。

font.bold : bool

フォントの太さを太字にするかどうかを設定します。

font.capitalization : enumeration

テキストの大文字小文字の設定を行います。

定数説明
Font.MixedCase通常の場合:大文字小文字の変更は適用されません
Font.AllUppercaseテキストをすべて大文字でレンダリングするように変更します
Font.AllLowercaseテキストをすべて小文字でレンダリングするように変更します
Font.SmallCapsテキストをスモールキャップスで表示するように変更する
Font.Capitalize各単語の最初の文字を大文字にしてテキストを表示するように変更します
Text { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

選択したフォントに特定の文字が含まれていない場合、Qt はその文字を含む、見た目が似ている代替フォントを自動的に選択します。デフォルトでは、これは文字単位で行われます。

つまり、ごくまれなケースでは、たとえ同じ文字体系のテキストであっても、1つの文字列を表現するために多くの異なるフォントが使用される可能性があります。contextFontMerging をtrueに設定すると、代わりに、入力文字列の最大の部分集合と一致する代替フォントが検索されます。これは、欠落しているグリフがある文字列では処理負荷が高くなりますが、より一貫性のある結果が得られる可能性があります。 デフォルトでは、contextFontMerging はfalse に設定されています。

このプロパティは Qt 6.8 で導入されました。

QFont::StyleStrategyも参照してください 。

font.family : string

フォントのファミリー名を設定します。

ファミリー名は大文字小文字を区別せず、必要に応じてフォントメーカー名を含めることもできます(例:「Helvetica [Cronyx]」)。 そのフォントファミリーが複数のフォントメーカーから提供されており、かつフォントメーカーが指定されていない場合は、任意のフォントメーカーが選択されます。そのフォントファミリーが利用できない場合は、フォントマッチングアルゴリズムを使用してフォントファミリーが設定されます。

font.features : object [since 6.6]

テキストの内容に基づいてテキストの形状を調整する際、特定のOpenType機能に整数値を適用します。これにより、フォントの形状調整プロセスへの高度なアクセスが可能となり、APIでは通常サポートされていないフォント機能をサポートするために使用できます。

フォント機能は、4文字のタグから整数値への対応付けとして表現されます。ほとんどの場合、タグとともに渡されるこの整数値はブール値を表します。つまり、値が 0 の場合は機能が無効であり、0 以外の値の場合は有効であることを意味します。ただし、特定のフォント機能については、異なる解釈が適用される場合があります。 たとえば、「salt 」機能に適用する場合、その値は使用するスタイルの代替案を指定するインデックスとなります。

例えば、「frac 」フォント機能は、スラッシュで区切られた斜体分数(1/2 など)を、異なる表記に変換します。通常、これは分数全体を単一の文字幅に収めることを意味します(½ など)。

フォントがfrac 機能をサポートしている場合、以下のコードのようにシェイパーで有効にすることができます:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1 }
}

同じマッピング内で複数の機能に値を割り当てることができます。たとえば、そのフォントのカーニングも無効にしたい場合は、次のように明示的に無効にすることができます:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1, "kern": 0 }
}

また、フォントプロパティをオブジェクトにまとめて取得することもできます:

Text {
    text: "One divided by two is 1/2"
    font: {
        family: "MyFractionFont"
        features: { "frac": 1, "kern": 0 }
    }
}

注:デフォルトでは 、Qtは他のフォントプロパティに基づいて特定のフォント機能を有効または無効にします。特に、kern 機能は、font::kerning プロパティに応じて有効/無効になります。さらに、すべての合字機能(liga 、clig 、

dlig、hlig )は、font.letterSpacing が設定されている場合に無効化されますが、これは合字の使用が装飾的な目的のみである文字体系に限られます。合字が必須とされる文字体系では、これらの機能はデフォルトの状態のまま維持されます。font.features を使用して設定された値は、デフォルトの動作を上書きします。例えば、"kern" が1に設定されている場合、font::kerning プロパティがfalseに設定されているかどうかに関係なく、カーニングは常に有効になります。同様に、

0 に設定されている場合、カーニングは常に無効になります。

このプロパティは Qt 6.6 で導入されました。

QFont::setFeature()も参照してください 。

font.hintingPreference : enumeration

テキストに推奨されるヒント設定を適用します。

これは、基盤となるテキストレンダリングシステムに対して特定のレベルのヒンティングを使用するよう指示するものであり、プラットフォームによってサポート状況が異なります。詳細については、QFont::HintingPreference のドキュメントにある表を参照してください。

注:この プロパティは、レンダリングタイプ `Text.NativeRendering` と組み合わせて使用した場合にのみ効果を発揮します。

定数説明
Font.PreferDefaultHintingターゲットプラットフォームのデフォルトのヒンティングレベルを使用します。
Font.PreferNoHinting可能であれば、グリフのアウトラインにヒンティングを適用せずにテキストをレンダリングします。テキストのレイアウトは、たとえば印刷時と同じメトリクスを使用して、タイポグラフィ的に正確なものになります。
Font.PreferVerticalHinting可能であれば、水平方向のヒンティングを行わず、縦方向にグリフをピクセルグリッドに揃えてテキストをレンダリングします。 ディスプレイの密度が低すぎてグリフを正確にレンダリングできない場合、テキストはより鮮明に表示されます。ただし、グリフの水平メトリックにはヒンティングが適用されていないため、改行などの詳細に影響を与えることなく、より高密度のデバイス(プリンタなど)に合わせてテキストのレイアウトをスケーリングすることができます。
Font.PreferFullHinting可能であれば、水平方向と垂直方向の両方でヒンティングを適用してテキストをレンダリングしてください。 テキストは、対象デバイスでの可読性を最適化するために変更されますが、メトリクスはテキストの目標サイズに依存するため、グリフの位置、改行、その他の組版上の詳細はスケーリングされません。つまり、ピクセル密度が異なるデバイスでは、テキストのレイアウトが異なって見える可能性があります。
Text { text: "Hello"; renderType: Text.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

font.italic : bool

そのフォントにイタリック体があるかどうかを設定します。

font.kerning : bool

テキストの整形時に、カーニングのOpenType機能を有効または無効にします。これを無効にすると、テキストの作成や変更時のパフォーマンスが向上する可能性がありますが、その代わりに一部の表示上の機能が犠牲になります。デフォルト値はtrue です。

Text { text: "OATS FLAVOUR WAY"; font.kerning: false }

font.letterSpacing : real

フォントの文字間隔を設定します。

文字間隔を設定すると、フォント内の個々の文字間のデフォルトの間隔が変更されます。正の値を指定すると、文字間隔が指定したピクセル数だけ広がり、負の値を指定すると間隔が狭くなります。

font.pixelSize : int

フォントサイズをピクセル単位で設定します。

この関数を使用すると、フォントはデバイス依存になります。デバイス非依存の方法でフォントサイズを設定するには、pointSize を使用してください。

font.pointSize : real

フォントサイズをポイント単位で設定します。ポイントサイズは0より大きくなければなりません。

font.preferShaping : bool

フォントによっては、文字を正しく表示するために、一連の文字に対して複雑なルールを適用することがあります。 ブラフミー文字系などの一部の文字体系では、テキストを読みやすくするためにこれが必須ですが、例えばラテン文字系では、これは単なる装飾的な機能に過ぎません。preferShaping プロパティをfalseに設定すると、必要のない場合にこうした機能をすべて無効にすることができ、ほとんどの場合、パフォーマンスが向上します。

デフォルト値は `true` です。

Text { text: "Some text"; font.preferShaping: false }

font.preferTypoLineMetrics : bool [since 6.8]

フォントのascent 、descent 、leading を定義する、互いに競合する一連の垂直線メトリクス。これらは、しばしば「win(Windows)メトリクス」と「typo(タイポグラフィ)メトリクス」と呼ばれます。 仕様では行間隔にtypo メトリクスの使用を推奨していますが、多くのアプリケーションでは、フォントのfsSelectionフィールドに USE_TYPO_METRICS フラグが設定されていない限り、win メトリクスを優先します。下位互換性の理由から、Qtアプリケーションでも同様です。 これは、USE_TYPO_METRICS フラグを設定してtypo メトリクスが有効であることを示しているフォントや、win メトリクスとtypo メトリクスが一致しているフォントについては問題になりません。しかし、特定のフォントでは、win メトリクスが望ましい行間よりも大きくなる場合があり、USE_TYPO_METRICS フラグが誤って設定されていないことがあります。そのようなフォントの場合、font.preferTypoLineMetrics を設定することで、より良い結果が得られる可能性があります。

デフォルトでは、preferTypoLineMetrics はfalse に設定されています。

このプロパティは Qt 6.8 で導入されました。

「QFont::StyleStrategy」も参照してください 。

font.strikeout : bool

そのフォントに打ち消し線スタイルがあるかどうかを設定します。

font.styleName : string

フォントのスタイル名を設定します。

スタイル名の大文字小文字は区別されません。設定された場合、フォントはfont.weight 、font.bold 、font.italic といったフォントプロパティではなく、スタイル名に基づいて照合されます。

font.underline : bool

テキストに下線を引くかどうかを設定します。

font.variableAxes : object [since 6.7]

可変フォント内の可変軸に浮動小数点値を適用します。

可変フォントは、同じフォントファイル内に複数のバリエーション(太さ、幅、スタイルが異なるもの)を格納する方法を提供します。これらのバリエーションは、「可変軸」と呼ばれる事前定義されたパラメータセットに対する浮動小数点値として指定されます。 特定のインスタンスには通常、フォントデザイナーによって名前が付けられており、Qt では、従来のサブファミリーと同様に setStyleName() を使用してこれらを選択できます。

場合によっては、さまざまな軸に対して任意の値を指定することも有用です。たとえば、フォントに「Regular」と「Bold」のサブファミリーがある場合、その中間の太さを指定したいことがあるでしょう。その場合は、フォントの「wght」軸にカスタム値を指定することで、手動でこれを要求することができます。

Text {
    text: "Foobar"
    font.family: "MyVariableFont"
    font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
}

フォントが「wght」軸をサポートしており、指定された値が定義された範囲内にある場合、ウェイト 550.0 に対応するフォントが提供されます。

多くのフォントが提供する標準的な軸として、「wght」(ウェイト)、「wdth」(幅)、「ital」(イタリック)、「opsz」(光学サイズ)などがあります。これらはそれぞれ、フォント自体に個別の範囲が定義されています。 たとえば、「wght」は 100 から 900(QFont::Thin からQFont::Black )の範囲であるのに対し、「ital」は 0 から 1(イタリックなしから完全なイタリック)の範囲である場合があります。

フォントによっては、カスタム軸を定義することも可能です。唯一の制限は、その名前がQFont::Tag の要件(4文字のLatin-1文字のシーケンス)を満たしている必要があるという点です。

デフォルトでは、可変軸は設定されていません。

注: Windowsでは 、オプションの GDI フォントバックエンドが使用されている場合、可変軸はサポートされません。

このプロパティは Qt 6.7 で導入されました。

QFont::setVariableAxis()も参照してください 。

font.weight : int

指定するフォントのウェイト。指定するウェイトは、1 から 1000 までの整数、または以下の定義済み値のいずれかでなければなりません。

定数説明
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400(デフォルト)
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900
Text { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

フォントの単語間隔を設定します。

単語間隔を設定すると、個々の単語間のデフォルトの間隔が変更されます。正の値を指定すると、単語間隔が指定したピクセル数だけ広がり、負の値を指定すると、それに応じて単語間隔が狭くなります。

horizontalAlignment : enumeration

verticalAlignment : enumeration

TextInput アイテムの幅と高さの範囲内で、テキストの水平方向の配置を設定します。デフォルトでは、テキストの配置はテキストの自然な配置に従います。たとえば、左から右に読むテキストは左揃えになります。

TextInput TextInput には縦方向の配置設定はありません。これは、自然な高さがテキストの1行分の高さと完全に一致するためです。高さを手動でそれより大きく設定した場合、 は常に上端揃えになります。アンカーを使用することで、別のアイテム内で任意の位置に配置することができます。

horizontalAlignment の有効な値は、TextInput.AlignLeft 、TextInput.AlignRight 、およびTextInput.AlignHCenter です。

verticalAlignment の有効な値は、TextInput.AlignTop (デフォルト)、TextInput.AlignBottom 、TextInput.AlignVCenter です。

添付プロパティLayoutMirroring::enabled を使用してアプリケーションのレイアウトを反転表示する場合、テキストの水平方向の配置も反転表示されます。ただし、プロパティhorizontalAlignment は変更されません。TextInput の実際の水平方向の配置を確認するには、読み取り専用プロパティeffectiveHorizontalAlignment を使用してください。

inputMask : string

TextInput に入力マスクを設定し、許可されるテキスト入力を制限することができます。TextInput でもまったく同じマスク文字列が使用されているため、詳細についてはQLineEdit::inputMask を参照してください。

acceptableInput およびvalidatorも参照してください 。

inputMethodComposing : bool [read-only]

このプロパティは、TextInput に入力方式からの部分的なテキストが入力されているかどうかを示します。

入力作成中、入力メソッドは、TextInput からのマウスイベントやキーイベントを利用して、部分テキストを編集または確定する場合があります。このプロパティを使用することで、入力メソッドの正常な動作を妨げる可能性のあるイベントハンドラを無効にするタイミングを判断できます。

inputMethodHints : enumeration

テキスト入力の想定される内容や、その動作方法について、入力メソッドにヒントを提供します。

値はフラグのビット単位の組み合わせであり、ヒントが設定されていない場合は Qt.ImhNone となります。

動作を変更するフラグは以下の通りです:

定数説明
Qt.ImhHiddenTextパスワード入力時などに一般的に使用されるように、文字を非表示にする必要があります。

なお、AndroidのIMEでは、パスワード入力欄では意図的にラテン文字/ASCII文字のみの入力に制限されています。

定数説明
Qt.ImhSensitiveData入力されたテキストは、予測ユーザー辞書などの永続的なストレージに、アクティブな入力方式によって保存されてはなりません。

Qt フレームワークはこれを「表示されているパスワード」として扱うため、この場合、Android IME では意図的にラテン文字および ASCII 文字のみの入力に制限されることに注意してください。

定数説明
Qt.ImhNoAutoUppercase文の終わりに達しても、入力方式は自動的に大文字に切り替えようとしてはなりません。
Qt.ImhPreferNumbers数字の使用が推奨されます(必須ではありません)。
Qt.ImhPreferUppercase数字が推奨されます(必須ではありません)。大文字が推奨されます(必須ではありません)。
Qt.ImhPreferLowercase小文字の使用が推奨されます(必須ではありません)。
Qt.ImhNoPredictiveText入力中は予測入力(辞書検索)を使用しないでください。
Qt.ImhDateテキストエディタは日付フィールドとして機能します。
Qt.ImhTimeテキストエディタは時刻フィールドとして機能します。

入力を制限するフラグ(排他的フラグ)は以下の通りです:

定数説明
Qt.ImhDigitsOnly数字のみ入力可能です。
Qt.ImhFormattedNumbersOnly数値のみの入力のみ許可されます。これには小数点およびマイナス記号が含まれます。
Qt.ImhUppercaseOnly大文字のみの入力のみ許可されます。
Qt.ImhLowercaseOnly小文字のみ入力可能です。
Qt.ImhDialableCharactersOnly電話番号のダイヤルに適した文字のみ使用可能です。
Qt.ImhEmailCharactersOnlyメールアドレスとして適切な文字のみ使用可能です。
Qt.ImhUrlCharactersOnlyURLに使用できる文字のみ入力可能です。

マスク:

定数説明
Qt.ImhExclusiveInputMaskこのマスクは、排他フラグのいずれかが使用されている場合、0 以外の値を返します。

length : int [read-only]

TextInput 項目の文字数を返します。

TextInput にinputMask が含まれている場合、長さにはマスク文字も含まれるため、text プロパティによって返される文字列の長さとは異なる場合があります。

このプロパティは、TextInput の内部文字列データのコピーや変換を必要としないため、text プロパティで長さを照会するよりも高速に動作する場合があります。

maximumLength : int

TextInput 内のテキストの最大許容長。

テキストが長すぎる場合、制限値で切り捨てられます。

デフォルトでは、このプロパティの値は 32767 です。

mouseSelectionMode : enumeration

マウスを使用してテキストを選択する方法を指定します。

定数説明
TextInput.SelectCharacters(デフォルト) 選択範囲は個々の文字ごとに更新されます。
TextInput.SelectWords単語単位で選択範囲が更新されます。

このプロパティは、selectByMouse がtrueの場合にのみ適用されます。

overwriteMode : bool

ユーザーが入力したテキストが、既存のテキストを上書きするかどうか。

多くのテキストエディタと同様に、このテキストエディタウィジェットは、ユーザーが入力した新しいテキストを既存のテキストに挿入するか、上書きするかを選択できるように設定できます。

このプロパティが「true 」に設定されている場合、既存のテキストは新しいテキストによって 1 文字ずつ上書きされます。それ以外の場合は、テキストがカーソル位置に挿入され、既存のテキストが押し出されます。

デフォルトでは、このプロパティは `false ` に設定されています(新しいテキストは既存のテキストを上書きしません)。

passwordCharacter : string

これは、echoMode が「Password」または「PasswordEchoOnEdit」に設定された際に表示される文字です。デフォルトでは、プラットフォームのテーマで使用されているパスワード文字が設定されます。

このプロパティが 2 文字以上の文字列に設定されている場合、最初の 1 文字が使用されます。文字列が空の場合、その値は無視され、プロパティは設定されません。

passwordMaskDelay : int

表示されている文字がパスワード文字でマスクされるまでの遅延時間を、ミリ秒単位で設定します。

undefined を代入することで、reset メソッドが呼び出されます。

persistentSelection : bool

TextInput が、シーン内の別のアイテムにアクティブなフォーカスが移った際、その選択状態を維持するかどうか。デフォルトでは、これはfalseに設定されています。

preeditText : string [read-only]

このプロパティには、入力方式から取得された部分的なテキストが含まれています。

予測機能による部分一致テキストを無効にするには、inputMethodHints で `Qt.ImhNoPredictiveText ` フラグを設定してください。

「 displayText 」および「inputMethodHints 」も参照してください 。

readOnly : bool

TextInput の内容をユーザー入力によって変更できるかどうかを設定します。

readOnly が true に設定されている場合、ユーザー入力は text プロパティに影響を与えません。バインディングや text プロパティの設定を試みる操作は、引き続き正常に機能します。

renderType : enumeration

このコンポーネントのデフォルトのレンダリングタイプを上書きします。

サポートされているレンダリングタイプは以下の通りです:

定数説明
TextInput.QtRendering各グリフに対して、スケーラブルな距離フィールドを使用してテキストがレンダリングされます。
TextInput.NativeRenderingテキストは、プラットフォーム固有の手法を使用してレンダリングされます。
TextInput.CurveRenderingテキストは、グラフィックスハードウェア上で直接実行されるカーブラスタライザを使用してレンダリングされます。(Qt 6.7.0 で導入されました。)

ターゲットプラットフォーム上でテキストをネイティブのように表示させたい場合、かつテキストの変形などの高度な機能を必要としない場合は、TextInput.NativeRendering を選択してください。NativeRendering レンダリングタイプと組み合わせてこれらの機能を使用すると、画質が低下し、場合によってはピクセル化された結果になることがあります。

TextInput.QtRendering とTextInput.CurveRendering は、いずれもハードウェアアクセラレーション技術です。QtRendering の方が高速ですが、メモリ消費量が多く、大きなサイズではレンダリングアーティファクトが発生します。QtRendering で良好な視覚的結果が得られない場合や、グラフィックスメモリの消費を抑えることが優先される場合は、CurveRendering を代替手段として検討すべきです。

デフォルトのレンダリングタイプは、QQuickWindow::textRenderType() によって決定されます。

selectByMouse : bool

デフォルトは「true 」です。

trueの場合、ユーザーは通常どおりマウスを使用してテキストを選択できます。

注: バージョン 6.4以前では 、デフォルトは `false` でしたが、このプロパティを有効にすると、タッチスクリーン上で指をドラッグしてテキストを選択することもできました。これは、Flickable 内で `TextInput ` が使用されている場合、フリッキングの動作に干渉していました。TextField との整合性を保つため、selectByMouseは現在、文字通りの意味を持つようになりました。つまり、true の場合、マウスでのみドラッグしてテキストを選択できます。この変更がアプリケーションに適さない場合は、selectByMouse をfalse に設定するか、古いAPIバージョン(例:import QtQuick 6.3 )をインポートして、以前の動作に戻すことができます。 インポートバージョンを変更して動作を元に戻すというオプションは、Qtの今後のバージョンで削除される予定です。

selectedText : string [read-only]

この読み取り専用プロパティは、テキスト入力フィールドで現在選択されているテキストを取得します。

これは以下のコードスニペットと同等の機能ですが、より高速で使いやすくなっています。

myTextInput.text.toString().substring(myTextInput.selectionStart,
    myTextInput.selectionEnd);

selectedTextColor : color

選択範囲で使用される、ハイライトされたテキストの色。

selectionColor : color

選択範囲の背景に使用されるテキストのハイライト色。

selectionEnd : int [read-only]

現在の選択範囲の最後の文字の直後のカーソル位置。

このプロパティは読み取り専用です。選択範囲を変更するには、select(start,end)、selectAll()、またはselectWord() を使用してください。

selectionStart 、cursorPosition 、およびselectedTextも参照してください 。

selectionStart : int [read-only]

現在の選択範囲の最初の文字の直前のカーソル位置。

このプロパティは読み取り専用です。選択範囲を変更するには、select(start,end)、selectAll()、またはselectWord() を使用してください。

selectionEnd 、cursorPosition 、およびselectedTextも参照してください 。

text : string

TextInput 内のテキスト。

一部のキーボードでは予測機能を使用していることに注意してください。この場合、入力方式によって作成されているテキストは、このプロパティの一部ではありません。予測に関連するテキストの部分には下線が引かれ、preeditText プロパティに格納されます。TextInput に表示されているテキスト全体を取得するには、displayText プロパティを使用してください。

関連項目: clear()、displayText 、preeditText 、accepted()、editingFinished()、およびtextEdited()。

validator : Validator

TextInput にバリデータを設定することができます。バリデータが設定されている場合、TextInput は、text プロパティを「許容状態」または「中間状態」にする入力のみを受け入れます。「accepted」シグナルは、Enter キーが押された時点で text が許容状態にある場合にのみ送信されます。

現在サポートされているバリデータは、IntValidator 、DoubleValidator 、RegularExpressionValidator です。以下に、テキスト入力フィールドに11から31までの整数を入力できるようにするバリデータの使用例を示します。

import QtQuick 2.0
TextInput{
    validator: IntValidator{bottom: 11; top: 31;}
    focus: true
}

acceptableInput およびinputMaskも参照してください 。

wrapMode : enumeration

このプロパティを設定すると、テキストが「TextInput 」項目の幅に合わせて折り返されます。テキストが折り返されるのは、明示的に幅が設定されている場合のみです。

定数説明
TextInput.NoWrap(既定値) 改行は行われません。テキストに含まれる改行が不十分な場合、contentWidth は設定された幅を超過します。
TextInput.WordWrap改行は単語の境界でのみ行われます。単語が長すぎる場合、contentWidth は設定された幅を超過します。
TextInput.WrapAnywhere行のどの位置でも改行が行われます。単語の途中であっても同様です。
TextInput.Wrap可能であれば、単語の区切りで改行が行われます。そうでない場合は、単語の途中であっても、行の適切な位置で改行が行われます。

デフォルトは `TextInput.NoWrap` です。幅を設定する場合は、`TextInput.Wrap` の使用を検討してください。

Signal ドキュメント

accepted()

このシグナルは、Return キーまたは Enter キーが押されたときに発火します。なお、テキスト入力フィールドに `validator ` または `inputMask ` が設定されている場合、入力が許容可能な状態にあるときにのみ、このシグナルが発火することに注意してください。

注: 対応するハンドラは onAccepted です。

editingFinished() およびtextEdited()も参照してください 。

editingFinished()

このシグナルは、ReturnキーまたはEnterキーが押されたとき、あるいはテキスト入力フィールドのフォーカスが外れたときに発生します。なお、テキスト入力フィールドにバリデータまたはinputMask が設定されており、EnterキーまたはReturnキーが押された場合、このシグナルは、入力がinputMask に準拠しており、かつバリデータが許容可能な状態を返した場合にのみ発生することに注意してください。

注: 対応するハンドラは `onEditingFinished` です。

accepted() およびtextEdited()も参照してください 。

textEdited()

このシグナルは、テキストが編集されるたびに発火します。textChanged() とは異なり、このシグナルは、たとえばtext プロパティの値を変更したり、clear() を呼び出したりするなど、プログラムによってテキストが変更された場合には発火しません。

注: 対応するハンドラは onTextEdited です。

accepted() およびeditingFinished()も参照してください 。

メソッドのドキュメント

void clear()

テキスト入力欄の内容をクリアし、入力方式から入力された部分的なテキストをリセットします。

text プロパティを空の文字列に設定する代わりに、このメソッドを使用してください。

QInputMethod::reset()も参照してください 。

void copy()

現在選択されているテキストをシステムのクリップボードにコピーします。

注: エコーモードが「通常」以外のモードに設定されている場合 、コピー機能は動作しません。これは、コピー機能を利用してラインコントロールのパスワード機能を迂回することを防ぐためです。

void cut()

現在選択されているテキストをシステムのクリップボードにコピーします。

注: エコーモードが「通常」以外になっている場合 、切り取り機能は動作しません。これは、行制御のパスワード機能を迂回する手段として切り取り機能が利用されるのを防ぐためです。

void deselect()

アクティブなテキストの選択を解除します。

void ensureVisible(int position)

テキスト入力欄の内容をスクロールし、指定された文字「position 」がテキスト入力欄の範囲内に表示されるようにします。

「autoScroll」も参照してください 。

string getText(int start, int end)

start とend の位置の間にあるテキストの区間を返します。

TextInput にinputMask が含まれている場合、長さにはマスク文字も含まれます。

void insert(int position, string text)

position の「TextInput 」に、text を挿入します。

bool isRightToLeft(int start, int end)

位置start とend の間に存在するエディタのテキストの自然な読み方向が右から左である場合、true を返します。

void moveCursorSelection(int position, SelectionMode mode)

カーソルをposition に移動し、オプションのmode パラメータに従って選択範囲を更新します。(カーソルの移動のみを行うには、cursorPosition プロパティを設定してください。)

このメソッドが呼び出されると、selectionStart またはselectionEnd (以前のカーソル位置にあった方のいずれか)が、指定された位置に設定されます。これにより、選択範囲を簡単に拡張または縮小することができます。

選択モードは、選択範囲が文字単位で更新されるか、単語単位で更新されるかを指定します。指定がない場合、選択モードはデフォルトでTextInput.SelectCharacters になります。

定数説明
TextInput.SelectCharactersselectionStart またはselectionEnd (カーソルの前の位置にあった方のいずれか)を、指定された位置に設定します。
TextInput.SelectWordsselectionStart およびselectionEnd を、指定された位置と前回のカーソル位置の間のすべての単語を含むように設定します。範囲に部分的に含まれる単語も含まれます。

たとえば、次のような一連の呼び出しを考えてみましょう。

cursorPosition = 5
moveCursorSelection(9, TextInput.SelectCharacters)
moveCursorSelection(7, TextInput.SelectCharacters)

これにより、カーソルが位置 5 に移動し、選択範囲の終了位置が 5 から 9 まで拡張された後、選択範囲の終了位置が 9 から 7 まで縮小され、位置 5 から 7 までのテキスト(6 文字目と 7 文字目)が選択された状態になります。

TextInput.SelectWords を使用した同じ一連の呼び出しでは、選択範囲の開始位置が位置 5 以前の単語境界まで拡張され、選択範囲の終了位置が位置 9 以降の単語境界まで拡張されます。

void paste()

現在選択されているテキストを、システムのクリップボードの内容で置き換えます。

int positionAt(real x, real y, CursorPosition position)

この関数は、textInputの左上隅からx ピクセルおよびy ピクセルの位置にある文字の位置を返します。位置0は最初の文字の前、位置1は最初の文字の後で2番目の文字の前、というように続き、位置text.lengthはすべての文字の後の位置となります。

つまり、最初の文字より前のすべての x 値に対してこの関数は 0 を返し、最後の文字より後のすべての x 値に対してこの関数は text.length を返します。y 値がテキストより上にある場合、位置は 1 行目にある最も近い文字の位置となり、テキストより下にある場合は、最終行にある最も近い文字の位置が返されます。

カーソル位置を指定するposition パラメータは、カーソル位置の決定方法を指定します:

定数説明
TextInput.CursorBetweenCharactersxに最も近い文字の位置を返します。これがデフォルト値です。
TextInput.CursorOnCharacterxに最も近い文字の直前の位置を返します。

rect positionToRectangle(int pos)

この関数は、文字位置pos を受け取り、カーソルがその文字位置に配置された場合にカーソルが占める矩形を返します。

これは、cursorPosition を設定してからカーソルの矩形を照会する操作と似ていますが、cursorPosition は変更されません。

void redo()

`redo`がavailable の場合、直前の操作を再実行します。

void remove(int start, int end)

TextInput から、start とend の位置の間にあるテキスト部分を削除します。

void select(int start, int end)

start からend までのテキストが選択されます。

開始位置または終了位置のいずれかが範囲外の場合、選択範囲は変更されません。

これを呼び出すと、selectionStart が小さい側になり、selectionEnd が大きい側になります(このメソッドに渡された順序に関係なく)。

「 selectionStart 」および「selectionEnd 」も参照してください 。

void selectAll()

すべてのテキストが選択されます。

void selectWord()

カーソルの現在位置に最も近い単語が選択されます。

void undo()

`undo`がavailable の場合、直前の操作を元に戻します。現在の選択範囲を解除し、選択範囲の開始位置を現在のカーソル位置に更新します。

© 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.