TextEdit QML Type

編集可能な書式付きテキストを複数行表示します。詳細...

Import Statement: import QtQuick
Inherits:

Item

プロパティ

シグナル

メソッド

詳細説明

TextEdit アイテムは、編集可能な書式付きテキストのブロックを表示します。

プレーンテキストとリッチテキストの両方を表示できます。例えば

TextEdit {
    width: 240
    text: "<b>Hello</b> <i>World!</i>"
    font.family: "Helvetica"
    font.pointSize: 20
    color: "blue"
    focus: true
}

focustrue に設定すると、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() 関数によって提供されます。テキストは、selectByMousefalse に設定されていない限り、通常の方法でマウスで選択でき、selectByKeyboardfalse に設定されていない限り、Shift+arrow キーの組み合わせでキーボードで選択できます。プログラムでテキストを選択するには、selectionStartselectionEnd プロパティを設定するか、selectAll() またはselectWord() を使用します。

カーソル位置(文書の先頭からの文字)とピクセル・ポイント間の変換は、positionAt ()とpositionToRectangle ()を使って行うことができます。

Text,TextInput,TextArea,Qt Quick Controls - Text Editorも参照してください

プロパティ ドキュメント

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 を用います。


bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

これらのプロパティは、コンテンツの周りのパディングを保持します。このスペースは、contentWidthcontentHeight に加えて確保されます。


activeFocusOnPress : bool

TextEdit 、マウス押下時にアクティブ・フォーカスを得るかどうか。デフォルトでは、これはtrueに設定されている。


baseUrl : url

このプロパティは、テキスト内の相対URLを解決するために使用されるベースURLを指定します。

デフォルト値は、TextEdit アイテムをインスタンス化する QML ファイルの URL です。


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, preliminary]

このプロパティは開発中であり、変更される可能性があります。

このプロパティは、テキストカーソルと並んで現在選択されているテキストがあれば、そのプロパティを提供するオブジェクトです。

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

selectedText,selectionStart,selectionEndも参照してください


cursorVisible : bool

trueの場合、テキスト編集はカーソルを表示します。

このプロパティは、テキスト編集がアクティブなフォーカスを得たときに設定されたり解除されたりしますが、直接設定することもできます(KeyProxyがキーを転送する場合などに便利です)。


font.bold : bool

フォントの太さを設定します。


font.capitalization : enumeration

テキストの大文字/小文字を設定します。

定数説明
Font.MixedCase大文字小文字を変更しない
Font.AllUppercaseテキストがすべて大文字で表示されるように変更します。
Font.AllLowercaseテキストをすべて小文字に変更します。
Font.SmallCapsテキストを小文字で表示します。
Font.Capitalizeテキストを各単語の最初の文字を大文字としてレンダリングするように変更する
TextEdit { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

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

つまり、ある珍しいケースでは、同じスクリプトであっても、1つの文字列を表現するために多くの異なるフォントが使用される可能性があります。contextFontMerging を true に設定すると、代わりに入力文字列の最大のサブセットにマッチするフォールバックフォントを見つけようとします。こ れは、 グ リ フ が欠落 し てい る 文字列に対 し ては よ り 高 く な り ますが、 よ り 一貫 し た結果が得 ら れ る 可能性があ り ます。デフォルトでは、contextFontMergingfalse です。

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

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


font.family : string

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

ファミリ名は大文字小文字を区別せず、オプションでファウンドリ名を含めることができます(例:"Helvetica [Cronyx]")。ファミリが複数のファウンドリから入手可能で、ファウンドリが指定されていない場合は、任意のファウンドリが選択されます。そのフ ァ ミ リ が得 ら れない と き は、 フ ォ ン ト 照合アルゴ リ ズ ム を用いて フ ァ ミ リ が設定 さ れます。


font.features : object [since 6.6]

features 内の内容に基づいてテ キ ス ト をシ ェーピ ン グす る 際に、 特定の OpenType 機能に整数値を適用 し ます。こ れは、 フ ォ ン ト シ ェーピ ン グ処理への高度な ア ク セ ス を提供 し 、 それ以外の API では網羅 さ れていない フ ォ ン ト 機能に対応す る ために利用す る こ と がで き ます。

フ ォ ン ト 機能は、 4 文字 タ グか ら 整数値へのマ ッ プで表 さ れます。ほとんどの場合、タグと一緒に渡されるこの整数値はブーリアン値を表します:ゼロの値はその機能が無効であることを意味し、ゼロ以外の値は有効であることを意味します。しかし、ある種のフォント機能については、この値は別の解釈を持つことがあります。例えば、salt 機能に適用される場合、値は、使用する文体の代替を指定するインデックスです。

た と えば、frac フ ォ ン ト 機能は、 ス ラ ッ シ ュ で区切 ら れた対角線上の分数 (1/2 の よ う に) を別の表現で変換 し ます。通常 こ れは、 分数全体を 1 文字幅に焼 き 出す こ と にな り ます (½ の よ う に)。

フ ォ ン ト が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 機能は、QFontfont.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 のドキュメントの表を参照してください。

注意: このプロパティは、レンダリングタイプTextEdit.NativeRendering と共に使用された場合にのみ効果を発揮します。

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

font.italic : bool

フ ォ ン ト が斜体ス タ イルを持つかど う かを設定 し ます。


font.kerning : bool

テキストを整形する際のカーニング OpenType 機能を有効または無効にします。これを無効にすると、テキストを作成または変更する際のパフォーマンスが向上する可能性がありますが、いくつかの外観上の特徴が犠牲になります。デフォルト値は true です。

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

font.letterSpacing : real

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

文字間隔は、フォント内の個々の文字の間のデフォルトの間隔を変更します。正の値を指定すると、文字間隔は対応するピクセル分だけ大きくなり、負の値を指定すると、文字間隔は小さくなります。


font.pixelSize : int

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

この関数を使用すると、フォントのデバイスに依存するようになります。デバイスに依存しない方法でフォントサイズを設定するにはTextEdit::font.pointSize を使用します。


font.pointSize : real

フォントサイズをポイントで設定します。ポ イ ン ト サ イ ズは 0 よ り 大 き く す る 必要があ り ます。


font.preferShaping : bool

フォントが文字集合に複雑な規則を適用して正しく表示することがある。バラモン文字のようないくつかの文字体系では、これはテキストを読みやすくするために必要なことですが、ラテン文字のような文字体系では、単なる見栄えのための機能です。preferShaping プロパティを false に設定すると、このような機能が不要な場合はすべて無効になり、ほとんどの場合パフォーマンスが向上します。

デフォルト値はtrueです。

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

font.preferTypoLineMetrics : bool [since 6.8]

ascentdescentleading を提供する縦線メ ト リ ッ ク のセ ッ ト を競合 さ せます。こ れ ら は し ば し ばwin(Windows) メ ト リ ッ ク とtypo(組版) メ ト リ ッ ク と 呼ばれます。仕様では、行間にはtypo メ ト リ ッ ク を用いる こ と を推奨 し てい ますが、 多 く のアプ リ ケーシ ョ ンは、 フ ォ ン ト のfsSelectionフ ィ ール ド でUSE_TYPO_METRICS フ ラ グが設定 さ れていない限 り 、win メ ト リ ッ ク を好みます。後方互換性の理由から、これは Qt アプ リ ケーシ ョ ンの場合も同様です。こ れは、typo メ ト リ ッ ク が有効であ る こ と を示すUSE_TYPO_METRICS フ ラ グ を設定 し てい る フ ォ ン ト や、win メ ト リ ッ ク とtypo メ ト リ ッ ク が一致 し てい る フ ォ ン ト に対 し ては問題ではあ り ません。し か し 、 あ る 種の フ ォ ン ト に対 し ては、win メ ト リ ッ ク が望ましい行間隔 よ り も 大 き く 、USE_TYPO_METRICS フ ラ グが誤っ て設定 さ れない こ と があ り ます。その よ う な フ ォ ン ト に対 し ては、font.preferTypoLineMetrics を設定す る こ と が優れた結果を も た ら す可能性があ り ます。

デフォルトでは、preferTypoLineMetricsfalse になります。

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

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


font.strikeout : bool

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


font.styleName : string

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

スタイル名は大文字小文字を区別しません。設定する と 、 フ ォ ン ト は、 フ ォ ン ト プ ロパテ ィfont.weightfont.boldfont.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 個の ラ テ ィ ン 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
TextEdit { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

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

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


このプロパティは、ユーザがテキストに埋め込まれたリンクにカーソルを合わせたときのリンク文字列を含みます。リンクはリッチテキストか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.ImhUrlCharactersOnlyURLに適した文字のみが許可されます。

マスク

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

length : int [read-only]

TextEdit アイテムに含まれるプレーンテキストの総文字数を返します。

この数にはフォーマットマークアップが含まれないため、text プロパティが返す文字列の長さとは異なる場合があります。

このプロパティは、TextEdit'の内部文字列データのコピーや変換を必要としないため、text プロパティの長さを問い合わせるよりも高速です。


lineCount : int [read-only]

TextEdit 項目の総行数を返します。


mouseSelectionMode : enumeration

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

定数説明
TextEdit.SelectCharacters(デフォルト) 選択は個々の文字で更新されます。
TextEdit.SelectWords選択範囲は単語全体で更新されます。

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


overwriteMode : bool

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

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

このプロパティがtrue の場合、既存のテキストは新しいテキストで一文字ずつ上書きされ、そうでない場合、テキストはカーソル位置に挿入され、既存のテキストを置き換えます。

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


persistentSelection : bool

TextEdit 、シーン内の他のアイテムにアクティブフォーカスを失ったときに、選択範囲を表示したままにするかどうかを指定します。デフォルトでは false に設定されています。


preeditText : string [read-only]

このプロパティには、入力メソッドからの部分テキスト入力が含まれます。

予測結果の部分テキストをオフにするには、inputMethodHintsQt.ImhNoPredictiveText フラグを設定します。

inputMethodHintsも参照してください


readOnly : bool

ユーザがTextEdit アイテムと対話できるかどうか。このプロパティを true に設定すると、ユーザとの対話によってテキストを編集できなくなります。

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


renderType : enumeration

このコンポーネントのデフォルトのレンダリングタイプをオーバーライドします。

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

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

テキストがターゲットプラットフォーム上でネイティブに見えることを好み、テキストの変換などの高度な機能を必要としない場合は、TextEdit.NativeRendering を選択します。NativeRendering レンダリング タイプと組み合わせてそのような機能を使用すると、結果が貧弱になり、時にはピクセル化されます。

TextEdit.QtRenderingTextEdit.CurveRendering はどちらもハードウェアアクセラレーション技術です。QtRendering は 2 つのうちで高速ですが、より多くのメモリを使用し、サイズが大きいとレンダリングアーチファクトが発生します。CurveRendering は、QtRendering で良好な視覚結果が得られない場合や、グラフィックスメモリ消費量の削減が優先される場合の代替手段として考慮する必要があります。

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


selectByKeyboard : bool

デフォルトは、エディタが編集可能な場合はtrue、読み取り専用の場合はfalseです。

trueの場合、エディタが読み取り専用であっても、ユーザーはキーボードを使ってテキストを選択できます。falseの場合、エディタが編集可能であっても、ユーザーはキーボードを使ってテキストを選択できません。

readOnlyも参照してください


selectByMouse : bool

Qt 6.4 以降、デフォルトはtrue です。

true の場合、ユーザーは通常の方法でマウスを使ってテキストを選択できます。

注意: 6.4 より前のバージョンでは、デフォルトはfalse でしたが、このプロパティを有効にすると、タッチスクリーン上で指をドラッグしてテキストを選択することもできます。これは、TextEdit が Flickable の内部で使用されている場合、フリック操作と干渉していました。しかし、Qt はバージョン 5.7 以降、モバイルプラットフォームや Qt Virtual Keyboard を使用する組み込みプラットフォームで、QInputMethod を介してテキスト選択ハンドルをサポートしています。ほとんどのユーザーは、親 Flickable をフリックするのではなく、指でドラッグしてテキストを選択することに驚くでしょう。そのため、selectByMouseは現在、その言葉通りの意味を持っています。true 、マウスによるドラッグのみでテキストを選択することができます。一方、タッチスクリーンでは、プラットフォームが選択ハンドルを提供することが期待されています。この変更がアプリケーションに合わない場合は、selectByMousefalse に設定するか、古い 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() を使用する。

selectionStartcursorPositionselectedTextも参照


selectionStart : int [read-only]

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

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

selectionEndcursorPositionselectedTextも参照


tabStopDistance : real

タブストップ間のデフォルトの距離(デバイス単位)。

QTextOption::setTabStopDistance()も参照して ください。


text : string

表示す る テ キ ス ト 。テ キ ス ト 形式が AutoText の場合、 テ キ ス ト を リ ッ チ テ キ ス ト と し て扱 う か ど う かはテ キ ス ト 編集部が自動的に判断 し ます。この判定はQt::mightBeRichText() を使って行われます。ただし、Markdownの検出は自動的には行われません。

text-propertyは、初期の内容を設定し、比較的小さなテキスト内容への変更を扱うのにほとんど適しています。append ()、insert ()、remove ()メソッドは、特に大きなリッチテキストコンテンツの変更に対して、よりきめ細かい制御と著しく優れたパフォーマンスを提供します。

キーボー ド に よ っ ては予測機能を利用す る も のがあ り ます。この場合、入力メソッドによって構成されるテキストは、このプロパティの一部ではありません。予測に関連するテキストの部分には下線が引かれ、preeditText プロパティに格納されます。

TextDocument::source を使ってテキストを読み込んだ場合、このプロパティから読み込んだテキストを取り出すことができます。その場合、textFormat を変更して、text プロパティの値を変更するフォーマット変換を行うことができます。たとえば、textFormatRichText またはAutoText で、HTML ファイルを読み込んだ後、textFormatMarkdownText に設定すると、text プロパティに HTML から Markdown への変換が格納されます。

clear()、preeditText 、およびtextFormatも参照してください


textDocument : TextDocument [read-only]

このTextEditQQuickTextDocument を返します。Qt 6.7以降、ファイルの読み込みと保存の機能があります。また、QSyntaxHighlighter をインストールするなど、QTextDocument インスタンスにアクセスする手段として C++ で使用することもできます。

QQuickTextDocumentも参照してください


textFormat : enumeration

text プロパティの表示方法。

サポートされているテキスト形式は以下のとおりです:

定数説明
TextEdit.PlainText(デフォルト) すべてのスタイリングタグはプレーンテキストとして扱われます。
TextEdit.AutoTextQt::mightBeRichText() ヒューリスティックまたはTextDocument::source
TextEdit.RichTextHTML 4 のサブセット
TextEdit.MarkdownTextCommonMarkGitHub のテーブルとタスクリストの拡張機能を加えたもの (5.14 以降)。

デフォルトはTextEdit.PlainText です。テキスト形式がTextEdit.AutoText に設定されている場合、テキストがリッチテキストとして扱われるべきかどうかは、テキスト編集が自動的に判断します。text プロパティが設定されている場合、この判断はQt::mightBeRichText() を使って行われます。この () は、テキストの最初の行にHTMLタグがあるかどうかを検出することはできますが、Markdownとプレーンテキストを区別することはできません。TextDocument::source プロパティが設定されている場合、この判定はmime type of the file から行われます。

Column {
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.AutoText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.RichText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.PlainText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.MarkdownText
        text: "**Hello** *World!*"
    }
}

TextEdit.MarkdownText を使用すると、GitHubチェックボックス拡張機能を使用した結果のチェックボックスがインタラクティブにチェック可能になります。

TextDocument::source プロパティが設定されている場合、読み込み後にtextFormat プロパティを変更すると、検出されたフォーマットから要求されたフォーマットに変換する効果があります。例えば、HTMLとMarkdownの間で変換することができます。しかし、これらの「リッチな」フォーマットのいずれかが読み込まれた後、textFormatPlainText に設定すると、TextEdit は生のマークアップを表示します。したがって、適切なバインディング(チェック可能なコントロールなど)を使用することで、ユーザーは「生の」編集とWYSIWYG編集を行き来することができます。

注: WYSIWYGモードでマークアップやマークダウンの書式をインタラクティブに入力することはサポートされていませんが、PlainText に切り替えて変更を加え、適切なtextFormat に戻すことができます。

注: Text.MarkdownText 、およびサポートされているHTMLのサブセットでは、いくつかの装飾要素はウェブ・ブラウザで表示されるようにはレンダリングされません:

  • コード・ブロックはdefault monospace font を使用しますが、周囲のハイライト・ボックスはありません。
  • ブロック引用符はインデントされますが、引用符の横に縦線はありません。

textMargin : real

TextEdit のテキストを囲むマージンをピクセル単位で指定します。


wrapMode : enumeration

このプロパティを設定すると、TextEdit アイテムの幅に合わせてテキストが折り返されます。テキストは、明示的な幅が設定されている場合にのみ折り返されます。

定数説明
TextEdit.NoWrap(デフォルト) 折り返しは行われません。テキストに十分な改行がない場合、implicitWidth は設定された幅を超えます。
TextEdit.WordWrap折り返しは単語の境界でのみ行われます。単語が長すぎる場合、implicitWidth は設定された幅を超える。
TextEdit.WrapAnywhere折り返しは、単語の途中であっても、行のどの位置でも行われます。
TextEdit.Wrap可能であれば、折り返しは単語の境界で行われ、そうでなければ、単語の途中であっても、行の適切な位置で行われます。

デフォルトはTextEdit.NoWrap 。幅を設定する場合は、TextEdit.Wrap の使用を検討すること。


シグナル ドキュメンテーション

editingFinished()

このシグナルは、テキスト編集がフォーカスを失ったときに発せられます。

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


linkActivated(string link)

このシグナルは、ユーザーがテキストに埋め込まれたリンクをクリックしたときに発行されます。リンクはリッチテキストまたはHTML形式でなければならず、link の文字列が特定のリンクへのアクセスを提供します。

注: 対応するハンドラはonLinkActivated


linkHovered(string link)

このシグナルは、ユーザーがテキストに埋め込まれたリンクをマウスオーバーしたときに発せられます。リンクはリッチテキストまたはHTML形式でなければならず、link 文字列が特定のリンクへのアクセスを提供します。

注: 対応するハンドラはonLinkHovered

hoveredLink およびlinkAt()も参照


メソッド・ドキュメント

void append(string text)

TextEdit の最後にtext を持つ新しい段落を追加します。

新しい段落を挿入せずに追加するには、代わりにmyTextEdit.insert(myTextEdit.length, text) を呼び出します。


clear()

テキスト編集の内容をクリアし、入力メソッドからの部分テキスト入力をリセットします。

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

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


copy()

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


cut()

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


deselect()

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


string getFormattedText(int start, int end)

startend の位置の間にあるテキストのセクションを返します。

返されたテキストは、textFormat プロパティに従ってフォーマットされます。


string getText(int start, int end)

startend 位置の間にあるテキストのセクションを返します。

返されたテキストにはリッチテキスト書式は含まれません。


insert(int position, string text)

positionTextEdittext を挿入。


isRightToLeft(int start, int end)

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


linkAt(real x, real y)

コンテンツ座標で点x,y のリンク文字列、またはその点にリンクが存在しない場合は空文字列を返します。

hoveredLinkも参照


moveCursorSelection(int position, SelectionMode mode)

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

このメソッドが呼び出されると、さらにselectionStart またはselectionEnd (どちらか前のカーソル位置) が指定された位置に設定されます。これにより、選択したテキスト範囲を簡単に伸ばしたり縮めたりすることができます。

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

定数説明
TextEdit.SelectCharactersselectionStart またはselectionEnd (どちらか前のカーソル位置) を指定された位置に設定します。
TextEdit.SelectWordsselectionStartselectionEnd を、指定位置と前のカーソル位置の間のすべての単語を含むように設定する。部分的に範囲内にある単語も含まれる。

たとえば、次の一連の呼び出しを見てみよう:

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

これは、カーソルを位置 5 に移動し、選択端を 5 から 9 まで伸ばし、選択端を 9 から 7 まで戻し、位置 5 から 7 までのテキストを選択したままにします(6 文字目と 7 文字目)。

TextEdit.SelectWords と同じシーケンスで、選択開始を位置 5 より前または位置 5 上の単語境界まで拡張し、選択終了を位置 9 より前または位置 9 より後の単語境界まで拡張します。


paste()

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


int positionAt(int x, int y)

ピクセル位置 (x,y) に最も近いテキスト位置を返す。

位置 0 は最初のキ ャ ラ ク タ の前、 位置 1 は最初のキ ャ ラ ク タ の後で 2 番目のキ ャ ラ ク タ の前、 以下、 位置text.length ま で続く。


rectangle positionToRectangle(position)

テ キ ス ト 内で与え ら れたposition に矩形を返 し ます。x, y, heightプロパティは、その位置を表すカーソルに対応します。


redo()

redo がavailable の場合、直前の操作をやり直します。


string remove(int start, int end)

startend の位置の間にあるテキストの部分をTextEdit から削除します。


select(int start, int end)

start からend までのテキストを選択する。

startまたはendのいずれかが範囲外の場合、選択は変更されない。

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

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


selectAll()

すべてのテキストを選択状態にします。


selectWord()

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


undo()

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


本書に含まれる文書の著作権は、各所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。