避免 macOS 和 Windows 之间的 wxPython TextCtrl 差异
Avoid wxPython TextCtrl differences between macOS and Windows
这个简单的文本控件片段在 macOS(顶部)和 WindowswxPython 4.0.4 上产生了截然不同的结果。我该如何缓解?
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))
Windows上的字体好像大了很多。别介意糟糕的屏幕截图质量;必须与 VirtualBox 中的 Windows 运行 有关。
注意:这是交叉发布到 https://groups.google.com/forum/#!topic/wxpython-users/j3HFo_-SeaU
您需要在代码中识别 OS 并为每个设置正确的字体,查看 wxPython 演示示例
最终决定性的改进是用像素而不是点来定义字体。
self.console_ctrl.SetFont(wx.Font((0, 13), wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
请注意(重载)wx.Font
constructor 的第一个参数现在是 wx.Size
而不是整数。
这个简单的文本控件片段在 macOS(顶部)和 WindowswxPython 4.0.4 上产生了截然不同的结果。我该如何缓解?
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))
Windows上的字体好像大了很多。别介意糟糕的屏幕截图质量;必须与 VirtualBox 中的 Windows 运行 有关。
注意:这是交叉发布到 https://groups.google.com/forum/#!topic/wxpython-users/j3HFo_-SeaU
您需要在代码中识别 OS 并为每个设置正确的字体,查看 wxPython 演示示例
最终决定性的改进是用像素而不是点来定义字体。
self.console_ctrl.SetFont(wx.Font((0, 13), wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
请注意(重载)wx.Font
constructor 的第一个参数现在是 wx.Size
而不是整数。