我有了一個家庭內的幾個字體粗細的字體(額外的光線,光,定期,semibold,大膽,黑色)。在這個例子中,我使用的是免費的Google Webfont Source Sans Pro,但是我對任何具有多個權重的字體(例如Avenir Next,Mac OS 10.8中的系統字體)都有同樣的問題。在Qt樣式表中,如果我指定:是否可以在Qt樣式表中指定字體的「常規」和「粗體」版本?
QLabel
{
font-family: Source Sans Pro;
font-size: 24px;
}
我得到字體的「Regular」樣式。如果我指定:
QLabel
{
font-family: Source Sans Pro;
font-weight: bold;
font-size: 24px;
}
我得到了字體的粗體版本。我找不出任何組合給我以外的其他任何東西,比如普通或粗體。我試着將字體直接放在字體家族中(例如,font-family:Source Sans Pro Light;),我嘗試在字體重量:說明符中使用Light,Semibold等,我也嘗試使用數字等值( Qt documentation表示它們應該是從0到99的值,而不是CSS x00編號)。什麼都沒有
編輯:我只是嘗試了font-weight屬性0和999之間的數字寫一個快速程序子。有趣的是,如果我在0和399之間插入任何東西,我就可以獲得「光明」.400到407給了我「定期」,408到599再次給我亮,然後600或更高給了我半分。這看起來很奇怪,因爲現在使用的數字我至少可以訪問「light」和「semibold」。我仍然無法找到任何方法來獲得「額外光」或「黑色」權重。
我唯一的問題是,這只是不可能不訴諸自定義代碼?我可以通過創建一個QFont得到確切的字體我想如下:
QFontDatabase db;
QFont = db.font("Source Sans Pro", "Semibold", 24);
但很明顯,這意味着我不能使用樣式表(或更糟的是,我必須寫我自己的樣式表分析器或者包裝現有的Qt一個或者其他的東西)。這似乎有點難以置信,這對於樣式表來說是不可能的。 Qt支持多重字體嗎?
原來,這只是Mac OS X中的一個問題。我應該提交一份Qt錯誤報告。如果您運行完全相同的代碼以在Mac和Linux上選擇完全相同的TrueType字體(均使用Qt 4.8.4),則會得到不同的結果。 Linux/X11版本可以滿足你的期望。 – ScottG 2013-02-16 04:17:01