【问题标题】:Eclipse font preferencesEclipse 字体首选项
【发布时间】:2017-12-20 08:21:31
【问题描述】:

试图在 Eclipse 3.7 中将字体大小设置为 8 以下,我在

中发现了一行
.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.ui.workbench.prefs


这是行:
org.eclipse.jface.textfont=1|Envy Code R|7.75|0|WINDOWS|1|-11|0|0|0|400|0|0|0|0|3|2|1|49|Envy Code R;

有人知道各个部分(由| 分隔)的含义吗?

【问题讨论】:

    标签: eclipse workbench user-preferences


    【解决方案1】:

    值为FontDatatoString()方法返回的字符串。此值是特定于平台的,您必须检查您平台的 FontData 源代码以确定它的确切含义。

    org.eclipse.jface.preference.PreferenceConverter 类提供了多种将FontData 转换为/从该字符串转换的方法。

    【讨论】:

    • 我为每个人添加了我的答案以及 Windows 的详细信息。谢谢!
    【解决方案2】:

    感谢 Greg 输入,这就是字符串的形成方式。 第一部分似乎与平台无关。

    1      |Envy Code R|7.75  |0
    version|name       |height|style
    

    其余的取决于平台。

    WINDOWS |1       |-11     |0      |0           |0            |400     |0       |0          |0          |0        |3             |2              |1        |49             
    platform|version2|lfHeight|lfWidth|lfEscapement|lfOrientation|lfWeight|lfItalic|lfUnderline|lfStrikeOut|lfCharSet|lfOutPrecision|lfClipPrecision|lfQuality|lfPitchAndFamily
    

    而在 Windows 中由 Class 表示

    public abstract class LOGFONT {
        public int lfHeight;
        public int lfWidth;
        public int lfEscapement;
        public int lfOrientation;
        public int lfWeight;
        public byte lfItalic;
        public byte lfUnderline;
        public byte lfStrikeOut;
        public byte lfCharSet;
        public byte lfOutPrecision;
        public byte lfClipPrecision;
        public byte lfQuality;
        public byte lfPitchAndFamily;
        public static final int sizeof = OS.IsUnicode ? OS.LOGFONTW_sizeof () : OS.LOGFONTA_sizeof ();
    }
    

    这显然是 C 结构的“副本”:

    typedef struct tagLOGFONT {
      LONG  lfHeight;
      LONG  lfWidth;
      LONG  lfEscapement;
      LONG  lfOrientation;
      LONG  lfWeight;
      BYTE  lfItalic;
      BYTE  lfUnderline;
      BYTE  lfStrikeOut;
      BYTE  lfCharSet;
      BYTE  lfOutPrecision;
      BYTE  lfClipPrecision;
      BYTE  lfQuality;
      BYTE  lfPitchAndFamily;
      TCHAR lfFaceName[LF_FACESIZE];
    } LOGFONT, *PLOGFONT;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多