このページでは

PathText QML Type

指定されたフォントで文字列を定義します。詳細...

Import Statement: import QtQuick
Since: QtQuick 2.15

プロパティ

詳細な説明

この要素は、指定されたフォントで指定された文字列の形状を定義します。テキストのベースラインは x 座標および y 座標に変換され、それに応じてフォントのアウトラインがパスに追加されます。

Shapeアイテム内でテキストを描画する際に使用する場合は、以下の点に注意してください:

  • 正しく塗りつぶすためには、ShapePath のfillRuleをShapePath.WindingFillに設定する必要があります。
  • すべてのフォントが、ストロークに適した美しいアウトラインを提供しているわけではありません。ストロークされたアウトラインを希望しているにもかかわらず、満足のいく結果が得られない場合は、別のフォントを試してみてください。
PathText {
    x: 0
    y: font.pixelSize
    font.family: "Arial"
    font.pixelSize: 100
    text: "Foobar"
}

関連項目: Path 、QPainterPath::setFillRule 、PathPolyline 、PathQuad 、PathCubic 、PathArc 、PathAngleArc 、PathCurve 、PathSvg 、およびPathMove 。

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

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

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

ウェイトには以下のいずれかを指定できます:

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

font.wordSpacing : real

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

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

text : string

このPathText に、アウトラインを含めるべきテキストです。

x : real

PathText のベースラインの水平位置。

y : real

PathText のベースラインの垂直位置。

注:このプロパティは 、テキストのベースラインの位置を指しており、バウンディングボックスの上端の位置ではありません。これにより、例えば「PathText 」を「Qt Quick 」のシェイプと併用する場合などに、混乱が生じる可能性があります。フォントのアセントを取得する方法については、FontMetrics を参照してください。アセントを使用することで、テキストを期待される位置に移動させることができます。

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