このページでは

C

font QML Value Type

フォントの設定。もっと...

列挙

プロパティ

詳細

フォント構成を記述するフォントタイプ。

Monotype Spark フォントエンジンを使用する場合、フォント設定はフォントクラスのマッピングルールを使用します。関連項目:テキストレンダリングとフォントQt.font ()。

使用例

Text {
    font.family: "Helvetica";
    font.pixelSize: 24;
    font.bold: true
}

一定のフォント設定

注 : 静的 フ ォ ン ト エン ジ ンStaticText 項目は、 定数フ ォ ン ト 構成にのみ対応 し てい ます。

定数フ ォ ン ト 構成と は、qmltocpp に よ っ てすべてのサブプ ロ パテ ィ が定数値に解決で き る フ ォ ン ト 設定の こ と を指 し ます。letterSpacing プロパテ ィ は、 フ ォ ン ト 構成が定数 と 見な さ れ る か ど う かには影響 し ません。こ のため、静的フ ォ ン ト エン ジ ンStaticText 項目を使っ てい る と き で も 、letterSpacing に対 し て動的値 (バ イ ンデ ィ ン グ) を用い る こ と が許 さ れます。

下記の例では、qmltocpp に よ っ てすべての フ ォ ン ト プ ロ パテ ィ が定数値に解決 さ れてい ます。なお、バインディングはreadonly プロパティを参照しています。

readonly property int titlePixelSize: 40
readonly property font myFontConfig: Qt.font({ pixelSize: titlePixelSize })

Text {
    text: "hello world"
    font.pixelSize: titlePixelSize
}

Text {
    text: "hello world 2"
    font: myFontConfig
}

Text {
    text: "hello world 3"
    font.italic: true
}

Qt Quick Ultralite またはフォントエンジン固有の詳細

バインディング

バージョン1.7から、Sparkフォントエンジンでフォントのサブプロパティにバインディングを定義できるようになりました。

Text {
    text: "Hello world from Qt"
    font.italic: italicSwitch.checked
    font.pixelSize: pixelSizeSlider.value
}

バインディング評価とフォントマップファイル内のフォントクラス名の対応付けの詳細については、フォントバインディングの例を参照してください。

どちらのフ ォ ン ト エン ジ ン も フ ォ ン ト プ ロ パテ ィ へのバ イ ンデ ィ ン グ を許 し てい ます。たとえば

readonly property font fontConf1: Qt.font({ pixelSize: 30 })
readonly property font fontConf2: Qt.font({ pixelSize: 50 })

Text {
    // Binding on font property.
    font: someCondition ? fontConf1 : fontConf2
    text: "some text"
}

これにより、静的エンジンでは実行時にフォントを変更できますが、スパークエンジンではフォントのサブプロパティのバインディングを細かく制御することはできません。

最適化

テキストが同じスタイルを使用するフォント設定(Text.font)を共有することで、メモリ使用量を最適化できます。Qt.font() も参照してください。

Text {
    // Sharing the font configuration with other Text element through a binding.
    font: myText.font
    text: "some text"
}

Constant font configurations は、 生成された C++ コ ー ド 内で自動的に共有 さ れます。

代入

Qt Quick Ultralite のfont 基本型は定数値なので、フォントのサブプロパティへの代入には対応していません。

// error: Assigning to properties of 'font' is not supported, use bindings
onClicked: myText.font.italic = false

エラーメッセージが示唆するように、バインディングを使って同じ結果を得ることができます。

property bool isItalic: true

Text {
    text: "hello world"
    font.italic: isItalic
}

MouseArea {
    anchors.fill: parent
    onClicked: isItalic = false
}

読み方

フォントのサブプロパティの読み込みは実装されていません。

列挙ドキュメント

Quality

フォント品質の選択肢のリストを提供します。

要求された品質は、定義済みの値のいずれかでなければなりません:

定数説明
Font.QualityVeryLow低品質のグリフを使う。
Font.QualityVeryHigh高品質のグリフを使います。

Weight

選択可能なフォントの太さのリストを提供します。

定数説明
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900

物件資料

bold : bool

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


family : string

フォントのファミリー名を設定します。デフォルトのフォント・ファミリはMCU.Config.defaultFontFamilyで設定されます。

静的フォント・エンジン

ファミリー名は大文字と小文字を区別せず、例えば "Helvetica [Cronyx]" のようにファウンドリ名を含む場合があります。ファミリが複数のファウンドリから利用可能で、ファウンドリが指定されていない場合、任意のファウンドリが選択されます。ファミリが利用できない場合は、フォントマッチングアルゴリズムを使ってファミリが設定されます。

Spark フォントエンジン

Fontmapファイル形式を使用する場合、MCU.Config.defaultFontFamilyQmlProjectプロパティの値が読み込まれます。それ以外の場合は、font.pixelSize フォント設定のみが使用されます。


italic : bool

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


letterSpacing : int [since Qt Quick Ultralite 2.11]

テキスト レイアウトの文字間隔を設定します。

文字間隔は、テキストレイアウトの個々の文字のデフォルトの間隔を変更します。正の値を指定すると、文字間隔は対応するピクセル分大きくなり、負の値を指定すると、文字間隔は小さくなります。

注: Qt Quick Ultraliteはアラビア文字のカシダサポートを実装していません。その代わりに空白が使用されますが、これはアラビア語のテキストに対するタイポグラフィの期待には適合しません。要件やコンテキストによっては、アイテムがアラビア語のコンテンツを表示しているときに文字間隔を無効にしたい場合があります。

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


pixelSize : int

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


pointSize : int

pointSize プロパティは、既知の問題または制限のページで文書化されているように、スクリーンDPIを尊重しません。現在、設定値は1.5倍にスケーリングされます。代わりにfont.pixelSize


quality : Quality [since Qt Quick Ultralite 1.9]

フォントのレンダリング品質。

font.quality プロパティは、低品質のグリフをレンダリングするためのヒントを提供することで、よりきめ細かい最適化を可能にする。

Text {
    font: Qt.font({ quality: Font.QualityVeryHigh })
    text: "..."
}

注意: quality プロパティはQt.font() 関数の中でしか設定できません。

:この機能は、すべてのリファレンス・ボードのハードウェアでサポートされていない可能性があります。詳細については、サポートされる機能の表を参照してください。

最適化

デフォルトでは、フォントコンパイラは、使用されるすべてのフォント構成において、使用されるすべてのキャラクタに対してグリフを生成します。その結果、冗長なグリフが生成されることがあります。例えば

Text {
    font: Qt.font({ quality: Font.QualityVeryHigh })
    text: "a"
}
Text {
    font: Qt.font({ quality: Font.QualityVeryLow })
    text: "b"
}

先述の例では、 「ab」 キ ャ ラ ク タ に対す る グ リ フ が、VeryHigh 用 とVeryLow 用の 2 回生成 さ れてい ます。こ れに よ り 、 既存のテ キ ス ト 項目間でテ キ ス ト プ ロ パテ ィ をバ イ ン ド す る こ と がで き ます。この動作を無効にするには、MCU.Config.autoGenerateGlyphsOFF に設定します。

アプリケーションのデフォルトのフォント品質を設定するには、MCU.Config.defaultFontQualityQmlProjectプロパティを参照してください。

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


unicodeCoverage : var [since Qt Quick Ultralite 1.1]

このプロパティはQt.font() コンテキストでのみサポートされています。

注意: unicodeCoverage プロパティは、使用するフォントエンジンによって意味が異なります。フォント・エンジン固有の詳細については、テキスト・レンダリングとフォントを参照してください。

ROMの使用を最適化するには、このプロパティをMCU.Config.autoGenerateGlyphsと組み合わせて使用します。

配列には

  • 追加するグリフを含む文字列リテラル。
  • Font.UnicodeBlock_Kannada のような Unicode ブロック列挙値。対応する enum 値の一覧はunicode ブロック名 を参照してください。
  • [0x600, 0x61F] の よ う な、 Unicode 範囲を示す対の リ ス ト 。

Text {
    font: Qt.font({
        family: "DejaVu Sans",
        unicodeCoverage: [Font.UnicodeBlock_Kannada, "ᜠᜡ\u1722", [0x600, 0x61F]]
    })
    text: CppSingleton.retrieveText()
}

例: 先ほどの例では、Text 項目で使われているフォント構成に対して、多くの余分なユニコードコードポイントのグリフがプリレンダリングされています。こ の情報はアプ リ ケーシ ョ ンのバ イ ナ リ に コ ンパ イ ル さ れます。Kannada" Unicode ブ ロ ッ ク 内の コ ー ド ポ イ ン ト 、 コ ー ド ポ イ ン ト 範囲 0x600 ~ 0x61F(含む)、 個々のキ ャ ラ ク タ ᜠ ・ ᜡ ・ U+1722 が含まれます。

コ ー ド ポ イ ン ト ご と に生成 さ れ る グ リ フ は 1 個だけ です。コードの構成やカプセル化に役立つのであれば、同じカバレッジをさまざまな場所で繰り返すことができます。ツールは重複グリフを除外します。

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


unicodeCoverageIncludeUpperCase : bool [since Qt Quick Ultralite 2.9]

このプロパティはQt.font() コンテキストでのみサポートされています。

こ のプ ロ パテ ィ をfont.unicodeCoverage と 組み合わせて用い る と 、font.unicodeCoverage に挙げ ら れてい る コ ー ド ポ イ ン ト の大文字バ リ ア ン ト を含め る こ と がで き ます。 コ ー ド ポ イ ン ト が Unicode で大文字バ リ ア ン ト を持たない と き は、 その特定の コ ー ド ポ イ ン ト に対す る アプ リ ケーシ ョ ンには小文字グ リ フのみがバ ン ド さ れます。こ の関数は、 アプ リ ケーシ ョ ンが JSstring.toUpperCase() を利用す る 場合に便利です。バンドルされたグリフを準備するアルゴリズムは、toUpperCase() を使って何をバンドルするかを決定します。toUpperCase() アルゴ リ ズ ムは、 い く つかの状況で期待どお り に動作 し ません。 こ れを回避す る には、unicodeCoverageIncludeUpperCase を用いて確実な結果を得 る こ と がで き ます。

デフ ォル ト 値はfalse です。

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


weight : Weight

フ ォ ン ト の太 さ を設定 し ます。以下の列挙に対応しています:



Qt ライセンスによっては利用可能です。