クラス継承
QFont
プロパティー
font.bold: bool = false final
font.capitalization: Capitalization = Font.MixedCase final
font.family: QString = プラットフォームデフォルト final
font.hintingPreference: HintingPreference = Font.PreferDefaultHinting) final
font.italic: bool = false final
font.kerning: bool = true final
font.letterSpacing: real = 0 final
font.overline: bool = false final
font.pixelSize: int = プラットフォームデフォルト final
font.pointSize: real = プラットフォームデフォルト final
font.preferShaping: bool = true final
font.strikeout: bool = false final
font.styleName: QString = "" final
font.underline: bool = false final
font.weight: FontWeight = Font.Normal final
font.wordSpacing: real = 0 final
説明
フォント指定で使われるタイプ。指定したフォントから実際に使われるフォントが求められて使われる。QFont の機能を部分的に QML で利用していて、pointSize と pixelSize の扱いは QML 向けになっている。
プロパティーの説明
font.bold: bool
true ならば太文字。
font.capitalization: Capitalization
テキスト描画時に小文字を大文字にする方法。以下の方法が用意されている。
列挙値 |
値 |
説明 |
Font.MixedCase |
0 |
そのままで何も変えない |
Font.AllUppercase |
1 |
小文字を大文字に変える |
Font.AllLowercase |
2 |
大文字を小文字に変える |
Font.SmallCaps |
3 |
小文字をサイズの小さい大文字に変える |
Font.Capitalize |
4 |
語の先頭文字を大文字にする。語の区切りはホワイトスペース |
font.family: QString
ファミリー名。
font.hintingPreference: HintingPreference
font.italic: bool
true ならばイタリック体。
font.kerning: bool
true ならばカーニングを行う。
font.letterSpacing: qreal
文字間隔を指定値に変更する。正負値共に可能。QFont::setLetterSpacing(QFont::AbsoluteSpacing, 指定値) を呼び出して変更している。
font.overline: bool
true ならば上線を付ける。
font.pixelSize: int
ピクセルサイズ。pointSize を設定した場合に QFontInfo の pixelSize になる。
font.pointSize: qreal
ポイントサイズ。pixelSize を設定した場合に QFontInfo の pointSize になる。
font.preferShaping: bool
true ならば QFont::setStyleStrategy() を呼び出して QFont::PreferNoShaping ビットを落とす。false ならばビットを立てる。
Text タイプのリファレンスに false に設定すると大抵の場合に効率がよくなると書かれている。しかし、拗音や捨て仮名、全角ギリシア文字の小文字などの語幅が広がってしまうため使い道は限られる。
font.strikeout: bool
true ならば取り消し線を付ける。
font.styleName: QString
スタイル名。
font.underline: bool
true ならば下線を付ける。
font.weight: FontWeight
フォントウェイト。0 から 99 までの値で、以下の FontWeight 型の列挙値で設定する。
列挙値 |
値 |
Font.Thin | 0 |
Font.ExtraLight | 12 |
Font.Light | 25 |
Font.Normal | 50 |
Font.Medium | 57 |
Font.DemiBold | 63 |
Font.Bold | 75 |
Font.ExtraBold | 81 |
Font.Black | 87 |
font.wordSpacing: qreal
語間隔を指定値に変更する。正負値共に可能。語の区切りはホワイトスペース。
注意
指定した通りのフォントが使われるのではない。Text では実際に使われるフォントは fontInfo プロパティーでわかるようになっている。しかし、font プロパティーのあるタイプに fontInfo プロパティーがあるとは限らない。実際には Text と Text を継承した Label のみに fontInfo プロパティーがある。
family と styleName に存在しない名前を指定した場合にはデフォルト値が使われエラーにはならない。存在しない場合でも指定した名前が説明文字列に入る。
QFont ではポイントサイズとピクセルサイズを共に設定すると最後に設定したものが有効になり、もう一方は -1 になる。QML の font は QFont とは違って、QFontInfo で求めた値がもう一方の値になり、等式 pixelSize = Math.floor(pointSize * (dpi/72)) が成り立つ。font の説明文字列は QFont の説明文字列のため、どちらかを設定した場合に説明文字列中のもう一方は -1 になり、QML の font の pointSize と pixelSize 両方が説明文字列の値と一致することはない。
QML ではポイントサイズとピクセルサイズの両方を指定すると警告され、ピクセルサイズが優先して使われる。宣言的に値を設定した場合に構文的に優先順を明示する適切な方法がないためこのような制約がある。
toString() が返す説明文字列の情報がプロパティーと一致してはいない。pointSize に 12.5 を設定した場合に、説明文字列の内容は以下のようになる。styleName 設定の有無で 10 要素か 11 要素の違いがある。
QFont(.SF NS Text,12.5,-1,5,50,0,0,0,0,0)
QFont(Osaka,12.5,-1,5,50,0,0,0,0,0,Regular-Mono) (styleName に "Regular-Mono" を設定)
上記の説明文字列の各要素はこのようになる。
説明文字列要素 |
型 |
要素値 |
QFontInfo の値 |
QML fontInfo の値 |
family |
QString |
.SF NS Text/Osaka |
.SF NS Text/Osaka |
.SF NS Text/Osaka |
pointSizeF |
qreal |
12.5 |
13 |
13 |
pixelSize |
int |
-1 |
13 |
13 |
styleHint |
StyleHint |
5 (QFont::AnyStyle) |
QFont::AnyStyle |
なし |
weight |
int |
50 |
50 |
50 |
style |
Style |
0 (QFont::StyleNormal) |
QFont::StyleNormal |
なし |
underline |
bool |
0 (false) |
false |
なし |
strikeout |
bool |
0 (false) |
false |
なし |
fixedPitch |
bool |
0 (false) |
false |
なし |
空き |
bool |
常に 0 (false) |
なし |
なし |
styleName |
QString |
なし/Regular-Mono |
Regular/Regular-Mono |
Regular/Regular-Mono |
問題
font のリファレンスには styleName の記述が漏れている。QFont のリファレンスには記述されている。
参考情報