避免macOS和Windows之间的wxPython TextCtrl差异

时间:2019-02-16 14:41:44

标签: python wxpython

这个用于文本控件的简单代码段在macOS(顶部)和带有wxPython 4.0.4的Windows上产生了截然不同的结果。我该如何缓解呢?

self.console_ctrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_READONLY | wx.HSCROLL)
self.console_ctrl.SetFont(wx.Font(13, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
self.console_ctrl.SetBackgroundColour(wx.BLACK)
self.console_ctrl.SetForegroundColour(wx.RED)
self.console_ctrl.SetDefaultStyle(wx.TextAttr(wx.RED))

wxPython TextCtrl on macOS

wxPython TextCtrl on Windows 10

Windows上的字体似乎更大。不用管屏幕截图质量差;必须与在VirtualBox中运行的Windows有关。

注意:这是交叉发布到https://groups.google.com/forum/#!topic/wxpython-users/j3HFo_-SeaU

2 个答案:

答案 0 :(得分:0)

您需要在代码中使用完整的操作系统,并为每种代码设置正确的字体,有关示例,请查看wxPython演示

答案 1 :(得分:0)

最终决定性的改进是使用像素而不是点来定义字体。

self.console_ctrl.SetFont(wx.Font((0, 13), wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))

请注意,(重载)wx.Font constructor的第一个参数现在是wx.Size而不是整数。