Low screen resolution pycharm. widget blurried

Hi there, This is my first topic about wxpython. I have some trouble with the resolution of the GUI. Now I explain: until yesterday I have been using spyder (Anaconda navigator) and my GUI worked normally, with the frames/panels/widgets on high resolution. But, because of some packages I couldn’t install I decided to change platform and now I use Pycharm.
I’ve installed all packages I need without any problem, the issue is not that, infact when I run the program, the GUI have a low resolution: texts, widgets and everything is blurried. It looks like an application of 40 years ago. I’ve tryed everything to go trought it:
1)Resolve with wx.Display()
2)Try setting the size with “GetContentScaleFactor()” (high resolution screen)
3)Use the method FromDIP to set the size with standard pixels (high-different resolution screen)
4)Update all packages at the last stable released and checking the interpreter (Python 3.9)
Nothing of this has worked.
Does anyone know how to solve it?

I complain for the low english level, but I’m italian and this can explain…

Hi,

Are you running on Windows OS?

If so, have you tried the code in the answer given for the following question?

import ctypes
try:
    ctypes.windll.shcore.SetProcessDpiAwareness(True)
except:
    pass

I don’t use Windows or have a high resolution monitor so I can’t test it myself.

It’s better to set it in the manifest of the .exe file. Use the Microsoft Manifest Tool (mt.exe) to modify whichever .exe you are running.

I’ve never had the need to change the manifest in python.exe, but I do change it in cx-Freeze generated .exe’s. I don’t know PyCharm well, but maybe there’s a PyCharm.exe in there with an unfortunate or missing manifest.

Instead of trying to remember the details of what goes in the manifest, here’s the one I’m using:

python3.WindowsPE.manifest.py (1.4 KB)
(It’s not really a .py file, but apparently the forum thinks .py is a safer file type than .manifest.)

I think I lifted that file from python.exe once upon a time, using mt.exe.

Wow It works fine. I’m talking about the method:

import ctypes
try:
ctypes.windll.shcore.SetProcessDpiAwareness(True)
except:
pass

I’ve not tryed the other way (manifest, .exe) because of no needing, this worked perfectly.
Thank both you very much.
Best regards Michele Zucchelli