TextEdit QML Type
編集可能な書式付きテキストを複数行表示します。詳細...
Import Statement: | import QtQuick |
Inherits: |
プロパティ
- 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
(preliminary)
- 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)
メソッド
- void append(string text)
- clear()
- copy()
- cut()
- deselect()
- string getFormattedText(int start, int end)
- string getText(int start, int end)
- insert(int position, string text)
- isRightToLeft(int start, int end)
- linkAt(real x, real y)
- moveCursorSelection(int position, SelectionMode mode)
- paste()
- int positionAt(int x, int y)
- rectangle positionToRectangle(position)
- redo()
- string remove(int start, int end)
- select(int start, int end)
- selectAll()
- selectWord()
- 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 Controls - Text Editorも参照してください 。
プロパティ ドキュメント
effectiveHorizontalAlignment : enumeration |
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
を用います。
これらのプロパティは、コンテンツの周りのパディングを保持します。このスペースは、contentWidth とcontentHeight に加えて確保されます。
baseUrl : url |
このプロパティは、テキスト内の相対URLを解決するために使用されるベースURLを指定します。
デフォルト値は、TextEdit アイテムをインスタンス化する QML ファイルの URL です。
color : color |
contentHeight : real |
テキストの高さ テキストの高さを返します。テキストが設定された高さ内に収まらない場合にカバーされる高さを超えた高さを含みます。
cursorDelegate : Component |
TextEdit のカーソルのデリゲート。
TextEdit に cursorDelegate を設定すると、標準カーソルの代わりにこのデリゲートがカーソルの描画に使用されます。デリゲートのインスタンスは、カーソルが必要なときにテキスト編集によって作成され管理され、デリゲートのインスタンスのxとyのプロパティは、現在の文字の左上の1ピクセル前になるように設定されます。
デリゲート・コンポーネントのルート・アイテムは、QQuickItem またはQQuickItem 派生アイテムでなければならないことに注意してください。
cursorPosition : int |
cursorRectangle : rectangle |
標準テキストカーソルがテキスト編集内でレンダリングされる矩形。読み取り専用。
カスタムcursorDelegate の位置と高さは、cursorRectangle が変更されたときに自動的に追従するように更新されます。デリゲートの幅は、カーソル矩形の変更の影響を受けません。
cursorSelection : QtQuick::TextSelection |
このプロパティは開発中であり、変更される可能性があります。
このプロパティは、テキストカーソルと並んで現在選択されているテキストがあれば、そのプロパティを提供するオブジェクトです。
このプロパティは 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 |
選択したフォントに特定の文字が含まれていない場合、Qt は自動的にその文字を含む類似のフォントを選択します。デフォルトでは、これは文字ごとに行われます。
つまり、ある珍しいケースでは、同じスクリプトであっても、1つの文字列を表現するために多くの異なるフォントが使用される可能性があります。contextFontMerging
を true に設定すると、代わりに入力文字列の最大のサブセットにマッチするフォールバックフォントを見つけようとします。こ れは、 グ リ フ が欠落 し てい る 文字列に対 し ては よ り 高 く な り ますが、 よ り 一貫 し た結果が得 ら れ る 可能性があ り ます。デフォルトでは、contextFontMerging
はfalse
です。
このプロパティは Qt 6.8 で導入されました。
QFont::StyleStrategyも参照してください 。
font.family : string |
フ ォ ン ト のフ ァ ミ リ 名を設定 し ます。
ファミリ名は大文字小文字を区別せず、オプションでファウンドリ名を含めることができます(例:"Helvetica [Cronyx]")。ファミリが複数のファウンドリから入手可能で、ファウンドリが指定されていない場合は、任意のファウンドリが選択されます。そのフ ァ ミ リ が得 ら れない と き は、 フ ォ ン ト 照合アルゴ リ ズ ム を用いて フ ァ ミ リ が設定 さ れます。
font.features : object |
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
機能は、QFont の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 のドキュメントの表を参照してください。
注意: このプロパティは、レンダリングタイプ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 |
ascent ・descent ・leading を提供する縦線メ ト リ ッ ク のセ ッ ト を競合 さ せます。こ れ ら は し ば し ばwin(Windows) メ ト リ ッ ク とtypo(組版) メ ト リ ッ ク と 呼ばれます。仕様では、行間にはtypo
メ ト リ ッ ク を用いる こ と を推奨 し てい ますが、 多 く のアプ リ ケーシ ョ ンは、 フ ォ ン ト のfsSelectionフ ィ ール ド でUSE_TYPO_METRICS
フ ラ グが設定 さ れていない限 り 、win
メ ト リ ッ ク を好みます。後方互換性の理由から、これは Qt アプ リ ケーシ ョ ンの場合も同様です。こ れは、typo
メ ト リ ッ ク が有効であ る こ と を示すUSE_TYPO_METRICS
フ ラ グ を設定 し てい る フ ォ ン ト や、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 |
浮動小数点値を、 可変フ ォ ン ト 内の可変軸に適用 し ます。
可変フ ォ ン ト は、 同 じ フ ォ ン ト フ ァ イ ル内に複数のバ リ エーシ ョ ン (異な る太 さ ・ 幅 ・ ス タ イ ルを持つ) を格納す る 方法を提供 し ます。バ リ エーシ ョ ンは、 「バ リ エーシ ョ ン軸」 と い う あらかじめ定義 さ れたパ ラ メ タ セ ッ ト に対す る 浮動小数点値 と し て与え ら れます。特定のインスタンスは通常、フォントデザイナーによって名前が与えられ、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.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 | 900TextEdit { text: "Hello"; font.weight: Font.DemiBold } |
font.wordSpacing : real |
フォントの単語間隔を設定します。
単語間隔は、個々の単語間のデフォルトの間隔を変更します。正の値を設定すると、対応するピクセル数だけ単語の間隔が広くなり、負の値を設定すると、それに応じて単語の間隔が狭くなる。
hoveredLink : string |
このプロパティは、ユーザがテキストに埋め込まれたリンクにカーソルを合わせたときのリンク文字列を含みます。リンクはリッチテキストかHTML形式でなければならず、リンク文字列は特定のリンクへのアクセスを提供します。
linkHovered およびlinkAt()も参照のこと 。
inputMethodComposing : bool |
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 | このマスクは、排他的フラグのいずれかが使用されている場合、ゼロ以外を返す。 |
length : int |
mouseSelectionMode : enumeration |
テキストをマウスで選択する方法を指定します。
定数 | 説明 |
---|---|
TextEdit.SelectCharacters | (デフォルト) 選択は個々の文字で更新されます。 |
TextEdit.SelectWords | 選択範囲は単語全体で更新されます。 |
このプロパティは、selectByMouse が true の場合にのみ適用されます。
overwriteMode : bool |
ユーザーが入力したテキストが既存のテキストを上書きするかどうか。
多くのテキストエディタと同様に、テキストエディタウィジェットは、ユーザによって入力された新しいテキストで既存のテキストを挿入または上書きするように設定することができます。
このプロパティがtrue
の場合、既存のテキストは新しいテキストで一文字ずつ上書きされ、そうでない場合、テキストはカーソル位置に挿入され、既存のテキストを置き換えます。
デフォルトでは、このプロパティはfalse
です(新しいテキストは既存のテキストを上書きしません)。
persistentSelection : bool |
TextEdit 、シーン内の他のアイテムにアクティブフォーカスを失ったときに、選択範囲を表示したままにするかどうかを指定します。デフォルトでは false に設定されています。
preeditText : string |
このプロパティには、入力メソッドからの部分テキスト入力が含まれます。
予測結果の部分テキストをオフにするには、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 つのうちで高速ですが、より多くのメモリを使用し、サイズが大きいとレンダリングアーチファクトが発生します。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
、マウスによるドラッグのみでテキストを選択することができます。一方、タッチスクリーンでは、プラットフォームが選択ハンドルを提供することが期待されています。この変更がアプリケーションに合わない場合は、selectByMouse
をfalse
に設定するか、古い API バージョン(たとえばimport QtQuick 6.3
)をインポートして以前の動作に戻すことができます。インポートバージョンを変更することで動作を元に戻すオプションは、Qt の後のバージョンで削除される予定です。
selectedText : string |
この読み取り専用プロパティは、テキスト編集で現在選択されているテキストを提供します。
以下のスニペットと同等ですが、より高速で使いやすくなっています。
//myTextEdit is the id of the TextEdit myTextEdit.text.toString().substring(myTextEdit.selectionStart, myTextEdit.selectionEnd);
selectedTextColor : color |
選択されたテキストの色。
selectionColor : color |
テキストのハイライト色。
selectionEnd : int |
現在の選択範囲の最後の文字の後のカーソル位置。
このプロパティは読み取り専用です。選択範囲を変更するには、select(start,end),selectAll(), またはselectWord() を使用する。
selectionStart : int |
現在の選択範囲の最初の文字の前のカーソル位置。
このプロパティは読み取り専用です。選択範囲を変更するには、select(start,end)、selectAll()、またはselectWord() を使用します。
tabStopDistance : real |
タブストップ間のデフォルトの距離(デバイス単位)。
QTextOption::setTabStopDistance()も参照して ください。
text : string |
表示す る テ キ ス ト 。テ キ ス ト 形式が AutoText の場合、 テ キ ス ト を リ ッ チ テ キ ス ト と し て扱 う か ど う かはテ キ ス ト 編集部が自動的に判断 し ます。この判定はQt::mightBeRichText() を使って行われます。ただし、Markdownの検出は自動的には行われません。
text-propertyは、初期の内容を設定し、比較的小さなテキスト内容への変更を扱うのにほとんど適しています。append ()、insert ()、remove ()メソッドは、特に大きなリッチテキストコンテンツの変更に対して、よりきめ細かい制御と著しく優れたパフォーマンスを提供します。
キーボー ド に よ っ ては予測機能を利用す る も のがあ り ます。この場合、入力メソッドによって構成されるテキストは、このプロパティの一部ではありません。予測に関連するテキストの部分には下線が引かれ、preeditText プロパティに格納されます。
TextDocument::source を使ってテキストを読み込んだ場合、このプロパティから読み込んだテキストを取り出すことができます。その場合、textFormat を変更して、text
プロパティの値を変更するフォーマット変換を行うことができます。たとえば、textFormat
がRichText
またはAutoText
で、HTML ファイルを読み込んだ後、textFormat
をMarkdownText
に設定すると、text
プロパティに HTML から Markdown への変換が格納されます。
clear()、preeditText 、およびtextFormatも参照してください 。
textDocument : TextDocument |
このTextEdit のQQuickTextDocument を返します。Qt 6.7以降、ファイルの読み込みと保存の機能があります。また、QSyntaxHighlighter をインストールするなど、QTextDocument インスタンスにアクセスする手段として C++ で使用することもできます。
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 から行われます。
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の間で変換することができます。しかし、これらの「リッチな」フォーマットのいずれかが読み込まれた後、textFormat
をPlainText
に設定すると、TextEdit は生のマークアップを表示します。したがって、適切なバインディング(チェック可能なコントロールなど)を使用することで、ユーザーは「生の」編集とWYSIWYG編集を行き来することができます。
注: WYSIWYGモードでマークアップやマークダウンの書式をインタラクティブに入力することはサポートされていませんが、PlainText
に切り替えて変更を加え、適切なtextFormat
に戻すことができます。
注: Text.MarkdownText
、およびサポートされているHTMLのサブセットでは、いくつかの装飾要素はウェブ・ブラウザで表示されるようにはレンダリングされません:
- コード・ブロックはdefault monospace font を使用しますが、周囲のハイライト・ボックスはありません。
- ブロック引用符はインデントされますが、引用符の横に縦線はありません。
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() |
アクティブなテキスト選択を削除します。
start とend の位置の間にあるテキストのセクションを返します。
返されたテキストは、textFormat プロパティに従ってフォーマットされます。
コンテンツ座標で点x,y のリンク文字列、またはその点にリンクが存在しない場合は空文字列を返します。
hoveredLinkも参照 。
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 より前または位置 5 上の単語境界まで拡張し、選択終了を位置 9 より前または位置 9 より後の単語境界まで拡張します。
paste() |
現在選択されているテキストをシステムクリップボードの内容で置き換えます。
ピクセル位置 (x,y) に最も近いテキスト位置を返す。
位置 0 は最初のキ ャ ラ ク タ の前、 位置 1 は最初のキ ャ ラ ク タ の後で 2 番目のキ ャ ラ ク タ の前、 以下、 位置text.length ま で続く。
rectangle positionToRectangle(position) |
テ キ ス ト 内で与え ら れたposition に矩形を返 し ます。x, y, heightプロパティは、その位置を表すカーソルに対応します。
redo() |
redo がavailable の場合、直前の操作をやり直します。
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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。