Ho un font che ha diversi pesi di font all'interno di una famiglia (extra light, light, regular, semibold, bold, black). Per questo esempio, sto utilizzando il sorgente gratuito di Google Webfont Source Sans Pro, ma ho riscontrato lo stesso problema con qualsiasi font con più pesi (ad esempio Avenir Next, un font di sistema in Mac OS 10.8). In un foglio di stile Qt, se si specifica:È possibile specificare più di una semplice versione "normale" e "grassetto" di un carattere in un foglio di stile Qt?
QLabel
{
font-family: Source Sans Pro;
font-size: 24px;
}
Ottengo lo stile "Normale" del carattere. Se si specifica:
QLabel
{
font-family: Source Sans Pro;
font-weight: bold;
font-size: 24px;
}
Ottengo la versione in grassetto del carattere. Non riesco a capire nessuna combinazione che mi darà qualcosa di diverso da normale o grassetto. Ho provato a mettere il peso direttamente nella famiglia di font (ad esempio, font-family: Source Sans Pro Light;), ho provato ad usare Light, Semibold, ecc. Nello strumento font weight: ho anche provato ad usare gli equivalenti numerici (Qt documentation dice che dovrebbero essere valori da 0 a 99 invece della numerazione CSS x00). Niente funziona.
EDIT: Ho appena provato a scrivere un programma rapido per inserire numeri da 0 a 999 per la proprietà di tipo font. È interessante notare che sono stato in grado di ottenere "luce" se inserivo qualcosa tra 0 e 399. Dal 400 al 407 mi ha dato "Regolare", dal 408 al 599 mi ha dato di nuovo la luce, quindi 600 o più mi hanno dato semibold. Questo sembra davvero strano, perché ora usando i numeri posso almeno accedere a "luce" e "semibold". Non riesco ancora a trovare alcun modo per ottenere i pesi "Extra Light" o "Black".
La mia unica domanda è, è semplicemente impossibile senza ricorrere al codice personalizzato? Posso ottenere il carattere esatto che voglio con la creazione di un QFont come segue:
QFontDatabase db;
QFont = db.font("Source Sans Pro", "Semibold", 24);
Ma, ovviamente, questo significa che non posso utilizzare i fogli di stile (o peggio, devo scrivere il mio parser foglio di stile o avvolgere quella Qt esistente o qualcosa). Sembra un po 'difficile credere che ciò non sia possibile con i fogli di stile. I font multi-peso sono poco supportati in Qt?
Risulta che questo è solo un problema in Mac OS X. Probabilmente dovrei presentare una segnalazione di bug Qt. Se si esegue lo stesso identico codice per selezionare esattamente lo stesso font TrueType su Mac e Linux (entrambi con Qt 4.8.4) si ottengono risultati diversi. La versione Linux/X11 fa quello che ti aspetti. – ScottG