小编Sco*_*ttG的帖子

是否可以在Qt样式表中指定不仅仅是"常规"和"粗体"版本的字体?

我有一个字体,在一个家庭中有多个字体权重(额外的光,光,常规,半粗体,粗体,黑色).对于这个例子,我使用免费的Google Webfont Source Sans Pro,但我对任何具有多个权重的字体都有同样的问题(例如Avenir Next,Mac OS 10.8中的系统字体).在Qt样式表中,如果我指定:

QLabel
{
    font-family: Source Sans Pro;
    font-size:   24px;
}
Run Code Online (Sandbox Code Playgroud)

我得到了字体的"常规"样式.如果我指定:

QLabel
{
    font-family: Source Sans Pro;
    font-weight: bold;
    font-size:   24px;
}
Run Code Online (Sandbox Code Playgroud)

我得到了字体的粗体版本.我无法弄清楚任何组合会给我除了常规或大胆以外的任何东西.我尝试将重量直接放在font-family中(例如,font-family:Source Sans Pro Light;),我尝试在font-weight:说明符中使用Light,Semibold等,我也尝试使用数字等价物(Qt文档说它们应该是0到99之间的值而不是CSS x00编号.什么都行不通.

编辑:我只是尝试编写一个快速程序,以0到999之间的数字为font-weight属性.有趣的是,如果我放入0到399之间的任何东西,我就能得到"光".400到407给了我"常规",408到599给了我光,然后600或更高给了我半哑.这看起来很奇怪,因为现在使用数字我至少可以访问"light"和"semibold".我仍然找不到任何方法来获得"额外光"或"黑色"重量.

我唯一的问题是,如果不诉诸自定义代码,这是不可能的吗?我可以通过创建QFont获得我想要的确切字体,如下所示:

QFontDatabase db;
QFont = db.font("Source Sans Pro", "Semibold", 24 );
Run Code Online (Sandbox Code Playgroud)

但显然这意味着我不能使用样式表(或者更糟糕的是,我必须编写自己的样式表解析器或将现有的Qt包装起来).这似乎有点难以相信样式表无法做到这一点.Qt中是否支持多重字体?

fonts qt stylesheet qtstylesheets

10
推荐指数
1
解决办法
4917
查看次数

标签 统计

fonts ×1

qt ×1

qtstylesheets ×1

stylesheet ×1