My application is using wxPython and runs on Linux and Windows without modification. The problem is display of Fonts. On Linux it looks perfect, but on Windows the “-” sign is totally broken and the text is not quite as nice. Here are some comparison pics:


See how the minus sign in the “Add” block is broken on Windows. This is rendered by converting the standard hyphen to a unicode character to get the full sized minus. I’m guessing this character doesn’t exist in the default font used in Windows. The other stuff looks poor on Windows too, but is somewhat tolerable.
The code I’m using looks like this:
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))
What is the simplest platform independent way to get a decent minus sign on Windows too? Is there a freely licensed font I can include with the app that contains this? How do I use it in wxPython?
I don’t want to install fonts on the system, and I don’t want to use the hyphen “-” character because it looks terrible in these diagrams due to it’s size.
For now I have found an acceptable answer. While looking through the wxDemo code I took note of how they select a font and realized that I was not even specifying a font. I figured the demo code was very likely to work on both platforms so gave this a try:
This makes the text size more consistent as well as providing acceptable +/- signs on both Windows and Linux using u2212. It appears loading a font from a file may not be platform independent – which is bad, since I did find one of the STIX fonts very nice for this application. So now I’ve got consistency with an acceptable font if not my top choice.