我有一个基于Qt(PyQt)的GUI应用程序在Mac OS X(和其他平台)上运行 . 它允许用户选择字体并具有粗体和斜体选项的复选框 .

在更新到新的基于Cocoa的Qt时,用户发现 QFontComboBox 不再显示不同的字体样式(例如浓缩,倾斜,粗体......),只显示字体系列名称 . 在Carbon下,它显示了两者 . 用户也无法在组合框中输入带有样式的名称 . 此外,我无法构造将名称传递给 QFont 构造函数的相同字体 .

QFont 似乎对这些缺少的样式一无所知 . 令人困惑的是它有另一种不同的风格概念 . 看起来 QFontDatabase 有关于样式变体的信息 . 它还可以根据族,样式和磅值构造字体 .

那么,以下是否改变了正确的方法?

  • 而不是使用粗体和斜体按钮,在 QFontComboBox 中选择的字体中有一个填充了 QFontDatabase 样式的组合框 .

  • 将样式存储在已保存的文档中(如文本),而不是粗体或斜体 .

所以

  • 我可以依赖不同语言系统上的风格吗?我可以将其包含在保存的文件中吗?

  • 样式"Bold Italic"是一种强大的方法,可以使 QFont 具有所需的属性,而不是设置 QFont 的粗体和斜体属性?

  • 如果我想保留粗体和斜体复选框,我该如何将这些属性转换为正确的样式?我能猜出“Bold”,“Italic”还是“Bold Italic”?