私は、1つのファミリ内にいくつかのフォントウェイト(余分なライト、ライト、レギュラー、セミボールド、ボールド、ブラック)を持つフォントを持っています。この例では、無料のGoogle Webfont Source Sans Proを使用していますが、複数のウェイトを持つフォント(Mac OS 10.8のシステムフォントAvenir Nextなど)で同じ問題が発生しています。 Qtスタイルシートで、指定した場合:Qtスタイルシートにフォントの「通常」と「太字」以外のバージョンを指定することはできますか?
QLabel
{
font-family: Source Sans Pro;
font-size: 24px;
}
フォントの「通常の」スタイルが得られます。指定した場合:
QLabel
{
font-family: Source Sans Pro;
font-weight: bold;
font-size: 24px;
}
フォントの太字が表示されます。レギュラーやボールド以外のものを私に与えるコンビネーションは分かりません。私はfont-family:Source Sans Pro Light;などのフォントファミリーに直接重み付けしてみました。font-weight:specifierにLight、Semiboldなどを使ってみました。 Qt documentationは、CSS x00の番号付けではなく0から99の値であると言います)。何も動作しません。
EDIT:font-weightプロパティの0から999までの数字で簡単なプログラムを作成してみました。興味深いことに、私は0と399の間に何かを置くと "光"を得ることができました。400から407は私に "普通"を与え、408から599は私に光を与え、600以上は半ばを与えました。これは実際には奇妙に思えます。なぜなら、今では数字を使って少なくとも「ライト」と「セミボールド」にアクセスできるからです。私はまだ "エクストラライト"や "ブラック"ウェイトを取得する方法を見つけることができません。
私の唯一の質問は、これはカスタムコードに頼らずには不可能なのでしょうか?次のように私はQFontを作成することで、私が欲しいの正確なフォントを取得することができます:
QFontDatabase db;
QFont = db.font("Source Sans Pro", "Semibold", 24);
をしかし、明らかに、これは私がスタイルシートを使用することはできません(またはより悪い、私は自分自身のスタイルシートパーサを書いたり、既存のQt 1をラップする必要がありますか何か)。これはスタイルシートでは不可能だと考えるのは少し難しいようです。マルチウェイトフォントはQtでサポートされていませんか?
これはMac OS Xの唯一の問題であることがわかりました。おそらくQtのバグレポートを提出するべきです。 MacとLinux(どちらもQt 4.8.4を使用)で正確に同じコードを実行して同じTrueTypeフォントを選択すると、異なる結果になります。 Linux/X11バージョンはあなたが期待することをします。 – ScottG