TextEdit QML Type
編集可能な書式付きテキストを複数行表示します。詳細...
プロパティ
- activeFocusOnPress : bool
- baseUrl : url
- bottomPadding : real
- canPaste : bool
- canRedo : bool
- canUndo : bool
- color : color
- contentHeight : real
- contentWidth : real
- cursorDelegate : Component
- cursorPosition : int
- cursorRectangle : rectangle
- cursorSelection : QtQuick::TextSelection
(technology preview) - cursorVisible : bool
- effectiveHorizontalAlignment : enumeration
- font.bold : bool
- font.capitalization : enumeration
- font.contextFontMerging : bool
(since 6.8) - font.family : string
- font.features : object
(since 6.6) - font.hintingPreference : enumeration
- font.italic : bool
- font.kerning : bool
- font.letterSpacing : real
- font.pixelSize : int
- font.pointSize : real
- font.preferShaping : bool
- font.preferTypoLineMetrics : bool
(since 6.8) - font.strikeout : bool
- font.styleName : string
- font.underline : bool
- font.variableAxes : object
(since 6.7) - font.weight : int
- font.wordSpacing : real
- horizontalAlignment : enumeration
- hoveredLink : string
- inputMethodComposing : bool
- inputMethodHints : enumeration
- leftPadding : real
- length : int
- lineCount : int
- mouseSelectionMode : enumeration
- overwriteMode : bool
- padding : real
- persistentSelection : bool
- preeditText : string
- readOnly : bool
- renderType : enumeration
- rightPadding : real
- selectByKeyboard : bool
- selectByMouse : bool
- selectedText : string
- selectedTextColor : color
- selectionColor : color
- selectionEnd : int
- selectionStart : int
- tabStopDistance : real
- text : string
- textDocument : TextDocument
- textFormat : enumeration
- textMargin : real
- topPadding : real
- verticalAlignment : enumeration
- wrapMode : enumeration
信号
- editingFinished()
- linkActivated(string link)
- linkHovered(string link)
- textEdited()
(since 6.9)
方法
- void append(string text)
- void clear()
- void copy()
- void cut()
- void deselect()
- string getFormattedText(int start, int end)
- string getText(int start, int end)
- void insert(int position, string text)
- bool isRightToLeft(int start, int end)
- string linkAt(real x, real y)
- void moveCursorSelection(int position, SelectionMode mode)
- void paste()
- int positionAt(int x, int y)
- rectangle positionToRectangle(position)
- void redo()
- string remove(int start, int end)
- void select(int start, int end)
- void selectAll()
- void selectWord()
- void undo()
詳細説明
TextEdit アイテムは、編集可能な書式付きテキストのブロックを表示します。
プレーンテキストとリッチテキストの両方を表示できます。例:
TextEdit {
width: 240
text: "<b>Hello</b> <i>World!</i>"
font.family: "Helvetica"
font.pointSize: 20
color: "blue"
focus: true
}focus をtrue に設定すると、TextEdit アイテムがキーボードフォーカスを受け取れるようになります。
なお、TextEdit アイテムは、スクロールやカーソルの追従、およびルック・アンド・フィールに固有のその他の動作を実装していません。例えば、カーソルを追従するフリック操作によるスクロールを追加するには:
Flickable {
id: flick
width: 300; height: 200;
contentWidth: edit.contentWidth
contentHeight: edit.contentHeight
clip: true
function ensureVisible(r)
{
if (contentX >= r.x)
contentX = r.x;
else if (contentX+width <= r.x+r.width)
contentX = r.x+r.width-width;
if (contentY >= r.y)
contentY = r.y;
else if (contentY+height <= r.y+r.height)
contentY = r.y+r.height-height;
}
TextEdit {
id: edit
width: flick.width
focus: true
wrapMode: TextEdit.Wrap
onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
}
}特定のルック・アンド・フィールでは、スムーズなスクロール(例:SmoothedAnimation を使用)を採用したり、目に見えるスクロールバーを表示したり、位置を示すためにフェードインするスクロールバーを採用したりする場合があります。
クリップボードのサポートは、cut()、copy()、およびpaste() 関数によって提供されます。selectByMouse がfalse に設定されていない限り、テキストは通常の方法でマウスを使って選択できます。また、selectByKeyboard がfalse に設定されていない限り、Shift+arrow のキーの組み合わせを使ってキーボードから選択できます。プログラムでテキストを選択するには、selectionStart およびselectionEnd プロパティを設定するか、selectAll() またはselectWord() を使用します。
positionAt() およびpositionToRectangle() を使用すると、カーソル位置(ドキュメントの先頭からの文字数)とピクセル座標を相互に変換できます。
Text 、TextInput 、TextArea 、およびQt Quick コントロール - テキストエディタも参照してください 。
プロパティのドキュメント
activeFocusOnPress : bool
TextEdit がマウスのクリック時にアクティブにフォーカスされるかどうか。デフォルトでは、これはtrueに設定されています。
baseUrl : url
このプロパティは、テキスト内の相対URLを解決するために使用されるベースURLを指定します。
デフォルト値は、TextEdit アイテムをインスタンス化するQMLファイルのURLです。
これらのプロパティは、コンテンツの周囲のパディングを指定します。このスペースは、contentWidth およびcontentHeight に加えて確保されます。
canPaste : bool [read-only]
TextEdit が書き込み可能であり、かつクリップボードの内容がTextEdit への貼り付けに適している場合、true を返します。
canRedo : bool [read-only]
TextEdit が書き込み可能であり、やり直し可能なundone 操作が存在する場合、trueを返します。
canUndo : bool [read-only]
TextEdit が書き込み可能であり、元に戻せる過去の操作が存在する場合、true を返します。
color : color
テキストの色。
// green text using hexadecimal notation
TextEdit { color: "#00FF00" }// steelblue text using SVG color name
TextEdit { color: "steelblue" }contentHeight : real [read-only]
テキストの高さを返します。ただし、テキストが設定された高さに収まらない場合は、収まらない部分の高さも含まれます。
contentWidth : real [read-only]
テキストの幅を返します。wrapMode が設定されている場合、改行が不十分であるために覆われてしまう部分を含む、その範囲を超える幅も含まれます。
cursorDelegate : Component
TextEdit のカーソル用デリゲート。
TextEdit に cursorDelegate を設定すると、標準のカーソルの代わりにこのデリゲートがカーソルの描画に使用されます。カーソルが必要になった際、テキストエディットによってデリゲートのインスタンスが作成・管理され、そのインスタンスの x および y プロパティは、現在の文字の左上隅から 1 ピクセル手前の位置になるように設定されます。
なお、デリゲートコンポーネントのルートアイテムは、QQuickItem またはQQuickItem を継承したアイテムでなければなりません。
cursorPosition : int
TextEdit 内のカーソルの位置。カーソルは文字と文字の間に配置されます。
注: この場合の「 文字」とは 、QChar オブジェクトの文字列、つまり 16 ビットの Unicode 文字を指し、その位置はこの文字列内のインデックスと見なされます。 これは、文字体系における個々のグラフェムと必ずしも対応するわけではありません。1つのグラフェムが、サロゲートペア、言語固有の合字、または発音区別符号の場合のように、複数のUnicode文字によって表されることがあるためです。
cursorRectangle : rectangle [read-only]
テキストエディット内で標準のテキストカーソルが表示される矩形。読み取り専用。
カスタムcursorDelegate の位置と高さは、cursorRectangleが変更されると自動的にそれに合わせて更新されます。デリゲートの幅は、カーソル矩形の変更による影響を受けません。
cursorSelection : QtQuick::TextSelection [read-only, technology preview]
このプロパティはテクノロジープレビュー版であり、変更される可能性があります。
このプロパティは、テキストカーソルとともに、現在選択されているテキスト(ある場合)のプロパティを提供するオブジェクトです。
このプロパティは Qt 6.7 で導入されました。
関連項目: selectedText 、selectionStart 、およびselectionEnd 。
cursorVisible : bool
true の場合、テキストエディットにカーソルが表示されます。
このプロパティは、テキストエディットがアクティブなフォーカスを取得した際に設定または解除されますが、直接設定することも可能です(たとえば、KeyProxyがキー入力をこのエディットに転送する場合などに便利です)。
effectiveHorizontalAlignment : enumeration [read-only]
horizontalAlignment : enumeration
verticalAlignment : enumeration
TextEdit アイテムの幅と高さの範囲内で、テキストの水平および垂直方向の配置を設定します。デフォルトでは、テキストの配置はテキストの自然な配置に従います。たとえば、左から右に読むテキストは左揃えになります。
horizontalAlignment の有効な値は次のとおりです。
| 定数 | 説明 |
|---|---|
TextEdit.AlignLeft | 左揃えで、右端が不揃い(デフォルト) |
TextEdit.AlignRight | 各行を右揃えにし、左端は不揃いにする |
TextEdit.AlignHCenter | 各行を中央揃えにする |
TextEdit.AlignJustify | 各行を左右両端に揃え、必要に応じて単語を広げます |
verticalAlignment の有効な値は次のとおりです:
| 定数 | 説明 |
|---|---|
TextEdit.AlignTop | 項目の先頭から開始する(デフォルト) |
TextEdit.AlignBottom | 最後の行を下端に揃え、その他の行は上側に配置する |
TextEdit.AlignVCenter | 垂直方向に中央揃え |
添付プロパティLayoutMirroring::enabled を使用してアプリケーションのレイアウトをミラーリングする場合、テキストの水平方向の配置もミラーリングされます。ただし、プロパティhorizontalAlignment は変更されません。TextEdit の実際の水平方向の配置を取得するには、読み取り専用プロパティeffectiveHorizontalAlignment を使用してください。
font.bold : bool
フォントの太さを太字にするかどうかを設定します。
font.capitalization : enumeration
テキストの大文字・小文字の設定を行います。
| 定数 | 説明 |
|---|---|
Font.MixedCase | 大文字化の変更は適用されません |
Font.AllUppercase | テキストをすべて大文字で表示するように変更します |
Font.AllLowercase | テキストをすべて小文字で表示するように変更します |
Font.SmallCaps | テキストをスモールキャップスで表示するように変更します |
Font.Capitalize | 各単語の最初の文字を大文字にしてテキストを表示するように変更します |
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 | 可能であれば、テキストは水平方向と垂直方向の両方でヒンティングを適用してレンダリングしてください。 テキストは、対象デバイスでの可読性を最適化するために変更されますが、メトリクスはテキストの目標サイズに依存するため、グリフの位置、改行、その他の組版上の詳細はスケーリングされません。つまり、ピクセル密度が異なるデバイスでは、テキストのレイアウトが異なって見える可能性があります。 |
font.italic : bool
そのフォントにイタリック体があるかどうかを設定します。
font.kerning : bool
テキストの整形時に、カーニングのOpenType機能を有効または無効にします。これを無効にすると、テキストの作成や変更時のパフォーマンスが向上する場合がありますが、その代わりに一部の視覚的な機能が犠牲になります。デフォルト値はtrue です。
Text { text: "OATS FLAVOUR WAY"; font.kerning: false }font.letterSpacing : real
フォントの文字間隔を設定します。
文字間隔を設定すると、フォント内の個々の文字間のデフォルトの間隔が変更されます。正の値を設定すると、指定したピクセル数だけ文字間隔が広がり、負の値を設定すると狭くなります。
font.pixelSize : int
フォントサイズをピクセル単位で設定します。
この関数を使用すると、フォントはデバイス依存になります。デバイス非依存の方法でフォントサイズを設定するには、TextEdit::font.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.Thin | 100 |
Font.ExtraLight | 200 |
Font.Light | 300 |
Font.Normal | 400(デフォルト) |
Font.Medium | 500 |
Font.DemiBold | 600 |
Font.Bold | 700 |
Font.ExtraBold | 800 |
Font.Black | 900 |
font.wordSpacing : real
フォントの単語間隔を設定します。
単語間隔を設定すると、個々の単語間のデフォルトの間隔が変更されます。正の値を指定すると、単語間隔が指定したピクセル数だけ広がり、負の値を指定すると、それに応じて単語間隔が狭くなります。
hoveredLink : string [read-only]
このプロパティには、ユーザーがテキスト内に埋め込まれたリンクにカーソルを合わせた際のリンク文字列が含まれます。リンクはリッチテキストまたはHTML形式である必要があり、このリンク文字列によって特定のリンクにアクセスできます。
「 linkHovered 」および「linkAt()」も参照してください 。
inputMethodComposing : bool [read-only]
このプロパティは、TextEdit に入力メソッドから部分的なテキストが入力されているかどうかを示します。
入力作成中、入力メソッドは、TextEdit からのマウスイベントやキーイベントを利用して、部分テキストを編集または確定する場合があります。このプロパティを使用することで、入力メソッドの正常な動作を妨げる可能性のあるイベントハンドラを無効にするタイミングを判断できます。
inputMethodHints : enumeration
テキスト編集フィールドに期待される内容や、その動作方法について、入力メソッドにヒントを提供します。
値はフラグのビット単位の組み合わせ、またはヒントが設定されていない場合は Qt.ImhNone となります。
動作を変更するフラグは以下の通りです:
| 定数 | 説明 |
|---|---|
Qt.ImhHiddenText | パスワード入力時などに通常使用されるように、文字を非表示にする必要があります。 |
Qt.ImhSensitiveData | 入力されたテキストは、予測ユーザー辞書などの永続的なストレージに、アクティブな入力方式によって保存されないようにする。 |
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.ImhUrlCharactersOnly | URLに使用できる文字のみ入力可能です。 |
マスク:
| 定数 | 説明 |
|---|---|
Qt.ImhExclusiveInputMask | このマスクは、排他的フラグのいずれかが使用されている場合に、0 以外の値を返します。 |
length : int [read-only]
TextEdit 項目に含まれるプレーンテキスト文字の総数を返します。
この数値には書式設定用のマークアップは含まれていないため、text プロパティによって返される文字列の長さとは一致しない場合があります。
このプロパティは、TextEdit の内部文字列データのコピーや変換を必要としないため、text プロパティで長さを照会するよりも高速に動作する場合があります。
lineCount : int [read-only]
TextEdit 項目の行の総数を返します。
mouseSelectionMode : enumeration
マウスを使用してテキストを選択する方法を指定します。
| 定数 | 説明 |
|---|---|
TextEdit.SelectCharacters | (デフォルト) 選択範囲は 1 文字ずつ更新されます。 |
TextEdit.SelectWords | 単語単位で選択範囲が更新されます。 |
このプロパティは、selectByMouse がtrueの場合にのみ適用されます。
overwriteMode : bool
ユーザーが入力したテキストが、既存のテキストを上書きするかどうか。
多くのテキストエディタと同様に、このテキストエディタウィジェットは、ユーザーが入力した新しいテキストを既存のテキストに挿入するか、上書きするように設定できます。
このプロパティがtrue の場合、既存のテキストは新しいテキストによって1文字ずつ上書きされます。それ以外の場合は、テキストがカーソル位置に挿入され、既存のテキストが押し出されます。
デフォルトでは、このプロパティは `false ` に設定されています(新しいテキストは既存のテキストを上書きしません)。
persistentSelection : bool
TextEdit が、シーン内の別のアイテムにアクティブなフォーカスが移った際にも、選択状態を表示し続けるかどうか。デフォルトでは、これはfalseに設定されています。
preeditText : string [read-only]
このプロパティには、入力方式から取得された部分テキストが含まれています。
予測機能による部分一致テキストを無効にするには、inputMethodHints でQt.ImhNoPredictiveText フラグを設定してください。
「inputMethodHints」も参照してください 。
readOnly : bool
ユーザーが「TextEdit 」アイテムを操作できるかどうかを示します。このプロパティが true に設定されている場合、ユーザー操作によってテキストを編集することはできません。
デフォルトでは、このプロパティは false です。
renderType : enumeration
このコンポーネントのデフォルトのレンダリングタイプを上書きします。
サポートされているレンダリングタイプは以下の通りです:
| 定数 | 説明 |
|---|---|
TextEdit.QtRendering | 各グリフに対して、スケーラブルな距離フィールドを使用してテキストがレンダリングされます。 |
TextEdit.NativeRendering | テキストは、プラットフォーム固有の手法を使用してレンダリングされます。 |
TextEdit.CurveRendering | テキストは、グラフィックスハードウェア上で直接実行される曲線ラスタライザを使用してレンダリングされます。(Qt 6.7.0 で導入されました。) |
ターゲットプラットフォーム上でテキストをネイティブのように表示させたい場合、かつテキストの変形などの高度な機能を必要としない場合は、TextEdit.NativeRendering を選択してください。NativeRendering レンダリングタイプと組み合わせてこれらの機能を使用すると、画質が低下し、場合によってはピクセル化された結果になることがあります。
TextEdit.QtRendering とTextEdit.CurveRendering は、いずれもハードウェアアクセラレーションによる手法です。QtRendering は2つのうち高速ですが、より多くのメモリを消費し、大きなサイズではレンダリングアーティファクトが発生します。QtRendering で良好な視覚的結果が得られない場合や、グラフィックメモリの消費量を抑えることが優先される場合は、CurveRendering を代替手段として検討すべきです。
デフォルトのレンダリングタイプは、QQuickWindow::textRenderType() によって決定されます。
selectByKeyboard : bool
エディタが編集可能な場合はデフォルトで true、読み取り専用である場合は false になります。
true の場合、エディタが読み取り専用であっても、ユーザーはキーボードを使用してテキストを選択できます。false の場合、エディタが編集可能であっても、ユーザーはキーボードを使用してテキストを選択できません。
readOnlyも参照してください 。
selectByMouse : bool
Qt 6.4 以降、デフォルトは `true ` です。
true の場合、ユーザーは通常通りマウスを使ってテキストを選択できます。
注: バージョン 6.4以前では 、デフォルトは `false` でしたが、このプロパティを有効にすると、タッチスクリーン上で指をドラッグしてテキストを選択することもできました。これは、`Flickable` 内で `TextEdit ` が使用されている場合に、フリック操作と競合していました。 しかし、Qtはバージョン5.7以降、QInputMethod を通じて、モバイルプラットフォームおよびQt Virtual Keyboard を使用する組み込みプラットフォーム上でテキスト選択ハンドルをサポートしています。親のFlickableをフリックする代わりに、指でドラッグするとテキストが選択されてしまう場合、ほとんどのユーザーは驚いてしまうでしょう。 したがって、selectByMouseは現在、その文字通りの意味を持つようになりました。つまり、true の場合、マウスでのみドラッグしてテキストを選択できますが、タッチスクリーン上ではプラットフォームが選択ハンドルを提供することが想定されています。この変更がアプリケーションに適さない場合は、selectByMouse をfalse に設定するか、古いAPIバージョン(例:import QtQuick 6.3 )をインポートして、以前の動作に戻すことができます。 インポートバージョンを変更して動作を元に戻すというオプションは、Qtの将来のバージョンで削除される予定です。
selectedText : string [read-only]
この読み取り専用プロパティは、テキスト編集フィールドで現在選択されているテキストを取得します。
これは以下のコードスニペットと同等の機能ですが、より高速で使いやすくなっています。
//myTextEdit is the id of the TextEdit
myTextEdit.text.toString().substring(myTextEdit.selectionStart,
myTextEdit.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も参照してください 。
tabStopDistance : real
タブストップ間のデフォルトの距離(デバイス単位)。
QTextOption::setTabStopDistance()も参照してください 。
text : string
表示するテキスト。テキスト形式が「AutoText」の場合、テキストエディタは、そのテキストをリッチテキストとして扱うべきかどうかを自動的に判断します。この判断は、Qt::mightBeRichText() を使用して行われます。ただし、Markdown の検出は自動的には行われません。
textプロパティは、主に初期コンテンツの設定や、比較的小さなテキストコンテンツの変更処理に適しています。append()、insert()、およびremove() メソッドを使用すると、よりきめ細かな制御が可能になり、特に大規模なリッチテキストコンテンツの変更において、著しく優れたパフォーマンスを発揮します。
一部のキーボードでは予測機能を使用していることに注意してください。この場合、入力メソッドによって作成されているテキストは、このプロパティの一部には含まれません。予測に関連するテキストの部分には下線が引かれ、preeditText プロパティに格納されます。
TextDocument::source を使用してテキストを読み込んだ場合、このプロパティから読み込まれたテキストを取得できます。その場合、textFormat を変更して書式変換を行い、text プロパティの値を変更することができます。例えば、textFormat がRichText またはAutoText であり、HTMLファイルを読み込んだ後、textFormat をMarkdownText に設定すると、text プロパティにはHTMLからMarkdownへの変換結果が含まれます。
clear()、preeditText 、およびtextFormatも参照してください 。
textDocument : TextDocument [read-only]
このTextEdit のQQuickTextDocument を返します。Qt 6.7以降、ファイルの読み込みおよび保存機能が備わっています。また、C++では、基盤となるQTextDocument インスタンスにアクセスする手段としても使用でき、例えばQSyntaxHighlighter をインストールする際などに利用できます。
QQuickTextDocumentも参照してください 。
textFormat : enumeration
text プロパティの表示方法。
サポートされているテキスト形式は以下の通りです:
| 定数 | 説明 |
|---|---|
TextEdit.PlainText | (既定値) すべてのスタイルタグはプレーンテキストとして扱われます |
TextEdit.AutoText | Qt::mightBeRichText() ヒューリスティックによって検出されたもの、またはTextDocument::source |
TextEdit.RichText | HTML 4のサブセット |
TextEdit.MarkdownText | CommonMarkに加え、表およびタスクリスト用のGitHub拡張機能(5.14以降) |
デフォルトは `TextEdit.PlainText` です。テキスト形式が `TextEdit.AutoText` に設定されている場合、テキストエディタはテキストをリッチテキストとして扱うべきかどうかを自動的に判断します。text プロパティが設定されている場合、この判断は `Qt::mightBeRichText()` を使用して行われます。この関数は、テキストの最初の行に HTML タグが存在するかどうかを検出できますが、Markdown とプレーンテキストを区別することはできません。TextDocument::source プロパティが設定されている場合、この判定はmime type of the file に基づいて行われます。
|
|
TextEdit.MarkdownText を指定すると、GitHub チェックボックス拡張機能を使用して生成されたチェックボックスは、インタラクティブにチェックできるようになります。
TextDocument::source プロパティが設定されている場合、読み込み後にtextFormat プロパティを変更すると、検出された形式から要求された形式に変換されます。たとえば、HTML と Markdown の間で変換を行うことができます。 ただし、これらの「リッチ」フォーマットのいずれかが読み込まれた状態で、textFormat をPlainText に設定すると、TextEdit には生のマークアップが表示されます。したがって、適切なバインディング(例:チェック可能なコントロールへのバインディング)を設定することで、ユーザーは「生」編集とWYSIWYG編集を切り替えることができます。
注: WYSIWYGモードでのマークアップやマークダウン形式のインタラクティブな 入力はサポートされていませんが、PlainText に切り替えて変更を行い、その後、適切なtextFormat に戻すことは可能です。
注: Text.MarkdownText およびサポートされている HTML のサブセットでは 、一部の装飾要素は Web ブラウザでの表示とは異なってレンダリングされます。
- コードブロックはdefault monospace font を使用しますが、周囲を囲むハイライトボックスはありません
- ブロック引用はインデントされますが、引用文の横に縦線は表示されません
textMargin : real
TextEdit 内のテキストの周囲にある余白(ピクセル単位)。
wrapMode : enumeration
このプロパティを設定すると、テキストが「TextEdit 」項目の幅に合わせて折り返されます。テキストが折り返されるのは、明示的に幅が設定されている場合のみです。
| 定数 | 説明 |
|---|---|
TextEdit.NoWrap | (既定値) 改行は行われません。テキストに含まれる改行が不十分な場合、implicitWidth は設定された幅を超過します。 |
TextEdit.WordWrap | 改行は単語の境界でのみ行われます。単語が長すぎる場合、implicitWidth は設定された幅を超過します。 |
TextEdit.WrapAnywhere | 行の任意の地点で改行が行われます。単語の途中であっても同様です。 |
TextEdit.Wrap | 可能であれば、単語の区切りで改行が行われます。そうでない場合は、単語の途中であっても、行上の適切な位置で改行が行われます。 |
デフォルトは `TextEdit.NoWrap` です。幅を設定する場合は、`TextEdit.Wrap` の使用を検討してください。
Signal ドキュメント
editingFinished()
このシグナルは、テキスト編集フィールドがフォーカスを失ったときに発信されます。
注: 対応するハンドラは `onEditingFinished` です。
linkActivated(string link)
このシグナルは、ユーザーがテキスト内に埋め込まれたリンクをクリックしたときに発生します。リンクはリッチテキストまたはHTML形式である必要があり、link という文字列によってその特定のリンクにアクセスできます。
注: 対応するハンドラは onLinkActivated です。
linkHovered(string link)
このシグナルは、ユーザーがテキスト内に埋め込まれたリンクにカーソルを合わせると発火します。リンクはリッチテキストまたはHTML形式である必要があり、link という文字列によってその特定のリンクにアクセスできます。
注: 対応するハンドラは onLinkHovered です。
関連項目: hoveredLink およびlinkAt()。
[since 6.9] textEdited()
このシグナルは、テキストが編集されるたびに発火します。textChanged() とは異なり、このシグナルは、たとえばtext プロパティの値を変更したり、clear()を呼び出したりするなど、プログラムによってテキストが変更された場合には発火しません。
注: 対応するハンドラは onTextEdited です。
このシグナルは Qt 6.9 で導入されました。
メソッドのドキュメント
void append(string text)
`text ` を含む新しい段落を、TextEdit の末尾に追加します。
新しい段落を挿入せずに追加するには、代わりに `myTextEdit.insert(myTextEdit.length, text) ` を呼び出してください。
void clear()
テキスト編集フィールドの内容をクリアし、入力方式から入力された部分的なテキストをリセットします。
text プロパティを空の文字列に設定する代わりに、このメソッドを使用してください。
QInputMethod::reset()も参照してください 。
void copy()
現在選択されているテキストをシステムのクリップボードにコピーします。
void cut()
現在選択されているテキストをシステムのクリップボードにコピーします。
void deselect()
アクティブなテキストの選択を解除します。
string getFormattedText(int start, int end)
start とend の位置の間にあるテキストの区間を返します。
返されるテキストは、textFormat プロパティに従って書式設定されます。
string getText(int start, int end)
start とend の位置の間にあるテキストの区間を返します。
返されるテキストには、リッチテキストの書式設定は一切含まれません。
void insert(int position, string text)
position の「TextEdit 」に、text を挿入します。
bool isRightToLeft(int start, int end)
位置start とend の間に存在するエディタのテキストの自然な読み方が「右から左」である場合、true を返します。
string linkAt(real x, real y)
ポイントx 、コンテンツ座標y にあるリンク文字列を返します。そのポイントにリンクが存在しない場合は、空の文字列を返します。
hoveredLinkも参照してください 。
void moveCursorSelection(int position, SelectionMode mode)
カーソルをposition に移動し、オプションのmode パラメータに従って選択範囲を更新します。(カーソルの移動のみを行うには、cursorPosition プロパティを設定してください。)
このメソッドが呼び出されると、さらに「selectionStart 」または「selectionEnd 」(以前のカーソル位置にあった方のモード)が、指定された位置に設定されます。これにより、選択されたテキスト範囲を簡単に拡張または縮小することができます。
選択モードは、選択範囲が文字単位で更新されるか、単語単位で更新されるかを指定します。指定がない場合、選択モードはデフォルトでTextEdit.SelectCharacters になります。
| 定数 | 説明 |
|---|---|
TextEdit.SelectCharacters | selectionStart またはselectionEnd (カーソルの前の位置にあった方のいずれか)を、指定された位置に設定します。 |
TextEdit.SelectWords | selectionStart およびselectionEnd を設定し、指定された位置と前回のカーソル位置の間のすべての単語を含めるようにします。範囲内に部分的に含まれる単語も含まれます。 |
たとえば、次のような一連の呼び出しを考えてみましょう。
cursorPosition = 5
moveCursorSelection(9, TextEdit.SelectCharacters)
moveCursorSelection(7, TextEdit.SelectCharacters)これにより、カーソルが位置 5 に移動し、選択範囲の終了位置が 5 から 9 まで拡張された後、選択範囲の終了位置が 9 から 7 まで引き戻され、位置 5 から 7 までのテキスト(6 文字目と 7 文字目)が選択された状態になります。
TextEdit.SelectWords を使用した同じ一連の呼び出しでは、選択範囲の開始位置が位置 5 以前の単語境界まで拡張され、選択範囲の終了位置が位置 9 以降の単語境界まで拡張されます。
void paste()
現在選択されているテキストを、システムのクリップボードの内容に置き換えます。
int positionAt(int x, int y)
ピクセル位置(x 、y )に最も近いテキスト位置を返します。
位置 0 は最初の文字の前、位置 1 は最初の文字の後で 2 番目の文字の前、というように続き、位置text.length はすべての文字の後の位置となります。
rectangle positionToRectangle(position)
テキスト内の指定されたposition にある矩形を返します。x、y、およびheightプロパティは、その位置を表すカーソルに対応しています。
void redo()
`redo`がavailable の場合、直前の操作をやり直します。
string remove(int start, int end)
TextEdit から、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.
