【问题标题】:Font issues from 2.8 to >= 2.9从 2.8 到 >= 2.9 的字体问题
【发布时间】:2014-05-15 16:27:02
【问题描述】:

我是使用 wxPython 2.8 的程序的开发人员。我希望我们可以升级到 3.0(并保持向后兼容性),但是我们的自定义小部件的字体大小似乎存在问题。

所有标准小部件(列表、静态文本等)似乎都具有与 2.8 -> 2.9+ 相同的字体,但我们的自定义小部件(使用 wx.FontFromPixelSize() 设置字体)在 2.9 上似乎都比在 2.9 上更大2.8.这是一个截图供比较:http://imgur.com/a/Ek5Ta

自定义小部件都使用wx.FontFromPixelSize()。在上面的示例中,该小部件使用:

self.font = wx.FontFromPixelSize((0,14),wx.SWISS, wx.NORMAL, wx.NORMAL, False)

似乎 2.8 和 2.9 处理像素大小的方式不同,我不知道为什么。我在网上找不到太多关于它的信息。

我可以通过使用(0,11) 作为大小来模拟 2.8 的外观,但是如果你在 2.8 中运行它,它会非常小。

然而,我确实注意到的一件事是,如果我在主窗口(未明确设置字体)上调用 Font.GetPixelSize(),它会根据版本返回两个不同的值:

2.8:(0,-11)

2.9+:(0,12)

我不知道这是否相关,或者问题是否与错误的基线大小有关。希望有一个简单的解决方案 - 我总是可以将所有尺寸存储在不同的模块中,并根据 wxPython 版本选择一些逻辑。

此外,这一切都来自 Windows 7 x64。我还不能在 Linux/OSX 上进行测试。

【问题讨论】:

    标签: wxpython


    【解决方案1】:

    ISTR 指出,这是因为在 2.8 中计算像素 --> 点大小的方式不正确,因此在 2.9/3.0 中已修复此问题。如果您需要保持兼容性,那么您可以根据 wx.VERSION 条件化用于像素高度的值。

    【讨论】:

    • 以为可能是这样,但我找不到任何与之相关的变更日志。
    • 我猜如果它被提及,它可能在 wxWidgets 更改日志或提交消息中的某个地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多