I’ve just written a prototype GUI program in Python using Tkinter. On my Windows desktop, it works fine, but when I try running it on someone else’s laptop, it looks slightly blurry. This turns out to be because Windows on the laptop is set to 150% scaling. It’s clear how this works: the font sizes etc. are not changed; everything is rendered as normal, but then the final bitmap is scaled by 1.5, hence the blurriness.
I can’t just say “well turn off scaling then” because it’s there for good reason; without it, many programs use a font size etc. that is too small to be very readable.
But nor can I just say “oh well that’s just inevitably how it is,” because it’s not. Microsoft Word on the same laptop, somehow bypasses it. For example, the open file dialog. When my program calls up such with Tkinter filedialog.askopenfilename()
, it is blurry. But Microsoft Word File/Open calls up an open file dialog that is not blurry. Nor is it too small. It’s about the same size in inches as the one called up by my program, but rendered perfectly crisply. It’s as if Word said to Windows “I hear you about the scaling, I got this, let me bypass it, and I will use a 50% larger font size to scale without the blurring”.
How do I get that bypass effect programmatically? Is it possible from Tkinter, or do I need to use a different framework, or drop down to straight C++?