1 つのファミリ (エクストラ ライト、ライト、レギュラー、セミボールド、ボールド、ブラック) 内に複数のフォント ウェイトを持つフォントがあります。この例では、無料の Google Webfont Source Sans Pro を使用していますが、複数のウェイトを持つフォント (Mac OS 10.8 のシステム フォントである Avenir Next など) で同じ問題が発生しました。Qt スタイルシートで、指定した場合:
QLabel
{
font-family: Source Sans Pro;
font-size: 24px;
}
フォントの「通常」スタイルを取得します。私が指定した場合:
QLabel
{
font-family: Source Sans Pro;
font-weight: bold;
font-size: 24px;
}
フォントの太字バージョンを取得します。レギュラーまたはボールド以外の組み合わせが思い浮かびません。font-family に直接太さを入れてみました (例: font-family: Source Sans Pro Light; )、font-weight: 指定子で Light や Semibold などを使用してみました、同等の数値を使用してみました ( Qt のドキュメントによると、CSS の x00 番号ではなく、0 から 99 までの値であると想定されています)。何も機能しません。
編集: font-weight プロパティの 0 から 999 までの数値をサブする簡単なプログラムを作成してみました。興味深いことに、0 から 399 までの値を入力すると「ライト」が得られました。400 から 407 で「レギュラー」、408 から 599 で再びライト、600 以上でセミボールドになりました。これは非常に奇妙に思えます。数値を使用すると、少なくとも「ライト」と「セミボールド」にアクセスできるからです。「エクストラ ライト」または「ブラック」ウェイトを取得する方法がまだ見つかりません。
私の唯一の質問は、これはカスタム コードに頼らない限り不可能なのでしょうか? 次のように QFont を作成することで、必要な正確なフォントを取得できます。
QFontDatabase db;
QFont = db.font("Source Sans Pro", "Semibold", 24 );
しかし、明らかにこれは、スタイルシートを使用できないことを意味します (さらに悪いことに、独自のスタイルシート パーサーを作成するか、既存の Qt パーサーをラップする必要があります)。これがスタイルシートでは不可能だとは少し信じがたいようです。マルチウェイトフォントはQtでサポートされていませんか?