Fonts 在Windows/Linux上使用wxPython的字体差异

Fonts 在Windows/Linux上使用wxPython的字体差异,fonts,cross-platform,wxpython,Fonts,Cross Platform,Wxpython,我的应用程序使用wxPython,在Linux和Windows上运行,无需修改。问题是字体的显示。在Linux上它看起来很完美,但在Windows上-符号完全被破坏了,文本也没有那么好。以下是一些对比图片: 查看添加块中的减号在Windows上是如何断开的。这是通过将标准连字符转换为unicode字符以获得完整大小的减号来呈现的。我猜这个字符在Windows中使用的默认字体中不存在。其他的东西在窗户上看起来也很差,但还是可以忍受的 我使用的代码如下所示: if (text == '-'): te

我的应用程序使用wxPython,在Linux和Windows上运行,无需修改。问题是字体的显示。在Linux上它看起来很完美,但在Windows上-符号完全被破坏了,文本也没有那么好。以下是一些对比图片:

查看添加块中的减号在Windows上是如何断开的。这是通过将标准连字符转换为unicode字符以获得完整大小的减号来呈现的。我猜这个字符在Windows中使用的默认字体中不存在。其他的东西在窗户上看起来也很差,但还是可以忍受的

我使用的代码如下所示:

if (text == '-'): text = u'\u2212' #unicode has a better minus s = self.dc.GetTextExtent(text) self.dc.DrawText(text, x_position, y_position - int(s[1]/2)) 在Windows上获得一个合适的减号的最简单的独立于平台的方法是什么?是否有一个免费许可的字体,我可以包括在应用程序包含这个?在wxPython中如何使用它


我不想在系统上安装字体,也不想使用连字符,因为它的大小在这些图表中看起来很糟糕。

尝试作为免费字体的资源进行检查。那里有很多具有合适许可证的字体。

如果使用dc.DrawLabel,有什么区别吗?我不得不在Windows上使用这种过度拉伸的文本,因为它不能正确显示换行符;它们看起来像小正方形,就像丢失的unicode字符一样。

现在我找到了一个可以接受的答案。在浏览wxDemo代码时,我注意到他们是如何选择字体的,并意识到我甚至没有指定字体。我认为演示代码很可能在这两种平台上都能工作,因此尝试一下:

self.dc.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.NORMAL))
这使得文本大小更加一致,并使用u2212在Windows和Linux上提供可接受的+/-符号。从文件加载字体可能不是独立于平台的,这很糟糕,因为我确实发现一种STIX字体非常适合这个应用程序。因此,如果不是我的首选字体,那么现在我已经获得了与可接受字体的一致性。

好的,我检查过了。没有看到任何带负号的东西。这些字体看起来很新奇。此外,如果字体是答案,我正在寻找更多的信息。