【发布时间】: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