2010-11-23 7 views
1

Qt 4.7.0を使用すると、通常と太字の間に部分的に表示するテキストが必要です。ここでは、やっていることだ:qpainterpath.addtextはqfontの重みを無視します

QGraphicsObjectの私達のサブクラスのPaint方法では、我々は上setWeight(58)を呼び出すQFontを持っています。 QPainterPathを作成し、そのaddTextメソッドを呼び出して、QFontを渡します。

QPainterパラメータを使用してdrawPathを呼び出し、QPainterPathを渡します。

フォントウェイトが50から62に変更されていることは、ペイント方法に違いはありません。フォントウェイト63〜75の場合、フォントは太字で塗りつぶされます。

fontWeightを期待どおりに動作させるにはどうすればよいですか? the documentationパー

答えて

1

は重量に QFont ::体重列挙の値である必要があります重量、 にフォントを設定します。

W3C page on CSS font boldnessには、CSSの処理方法の説明があります。 Qtのドキュメンテーションによれば、それは似たようなことをしています。基本的には、ウェイト値を適切なバージョンのフォント(通常、太字、太字など)にマッピングしようとするヒューリスティックを適用します。

若干厚く作成することは可能でしょうか(おそらくQPainterPath?特定のフォントの通常のグリフよりもはるかに優れていますが、結果はほとんど確かに残念です。フォントデザイナーは、フォントを特定のウエイトで見栄え良くするために多くの努力をしています。あなたがそれから出発すると(つまり、各グリフの輪郭を描くことによって)、そのデザイン最適化はすべて失われます。

関連する問題