C
font QML Value Type
フォントの設定。詳細...
- fontは、Qt Quick のUltralite QML基本型の一部です。
列挙型
プロパティ
- bold : bool
- family : string
- italic : bool
- letterSpacing : int
(since Qt Quick Ultralite 2.11) - pixelSize : int
- pointSize : int
- quality : Quality
(since Qt Quick Ultralite 1.9) - unicodeCoverage : var
(since Qt Quick Ultralite 1.1) - unicodeCoverageIncludeUpperCase : bool
(since Qt Quick Ultralite 2.9) - weight : Weight
詳細な説明
フォントの設定を記述するフォントタイプ。
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"
}これにより、静的エンジンでも実行時のフォント変更が可能になりますが、Sparkエンジンで可能なようなフォントのサブプロパティに対するきめ細かな制御はできません。
最適化
テキストが同じスタイルを使用する場合、フォント設定(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.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 |
物件資料
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 では、アラビア文字に対するカシダ(Kashida)のサポートは実装されていません。その代わりに空白が使用されますが、これはアラビア語テキストに対する組版上の期待には沿いません。要件や文脈によっては、アイテムにアラビア語のコンテンツが表示される場合、文字間隔を無効にしたほうがよい場合があります。
このプロパティは、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」という文字のグリフが 2 回生成されています。1 つはVeryHigh 、もう 1 つはVeryLow の品質用です。これにより、既存のテキスト項目間でテキストプロパティを紐付けることが可能になります。この動作を無効にするには、MCU.Config.autoGenerateGlyphsをOFF に設定してください。
アプリケーションのデフォルトのフォント品質を設定するには、QmlProject プロパティのMCU.Config.defaultFontQualityを参照してください。
このプロパティは、Qt Quick Ultralite 1.9で導入されました。
unicodeCoverage : var [since Qt Quick Ultralite 1.1]
このプロパティは、Qt.font() のコンテキストでのみサポートされています。
注: unicodeCoverage プロパティの意味は 、使用されるフォントエンジンによって異なります。フォントエンジンごとの詳細については、「テキストのレンダリングとフォント」を参照してください。
ROMの使用量を最適化するには、このプロパティをMCU.Config.autoGenerateGlyphsと組み合わせて使用してください。
自動生成モードでデフォルトで含まれる事前定義された文字セットについては、MCU.Config.autoGenerateGlyphsのドキュメントを参照してください。
この配列には、以下の要素を含めることができます:
- 追加するグリフを含む文字列リテラル(例: "\u1722")。
Font.UnicodeBlock_Kannadaのような、Unicode ブロックの列挙型値。サポートされている列挙型値の一覧については、Unicode ブロック名を参照してください。[0x600, 0x61F]のような、Unicode 範囲を示すペアのリスト。
例:
Text {
font: Qt.font({
family: "DejaVu Sans",
unicodeCoverage: [Font.UnicodeBlock_Kannada, "ᜠᜡ\u1722", [0x600, 0x61F]]
})
text: CppSingleton.retrieveText()
}前述の例では、Text 項目で使用されるフォント設定に対して、多くの追加ユニコードコードポイントのグリフが事前にレンダリングされています。この情報はアプリケーションバイナリにコンパイルされます。 「カンナダ語」ユニコードブロック内のコードポイント、コードポイント範囲 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ライセンスの下で利用可能です。
詳細はこちらをご覧ください。