¿Por qué la calidad de renderización Tkinter es mucho peor en Windows?

He desarrollado una aplicación python con Tkinter en una Mac. Se trata de formas, y canvass. En la Mac, se ve muy bien. Sin embargo, en mi computadora portátil Dell (pantalla 4K, y más potente que mi Mac), la interfaz de usuario Tkinter parece muy pixelada y ciertos elementos se ubican de forma ligeramente diferente. ¿Cómo se conoce este problema y qué puedo hacer para que Tkinter sea mejor en Dell Windows 10 u otras plataformas en general? Aquí hay una captura de pantalla de la misma parte de la interfaz de usuario (que muestra el dibujo de la forma y el canvas) …

Windows (mal) introduzca la descripción de la imagen aquí

Mac (normal)

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Las diferencias en la visualización de la misma aplicación se deben a las diferencias en los motores de renderización utilizados por cada sistema operativo.

Esto está cubierto en un libro electrónico de publicación de Pakt denominado Tkinter GUI Application Development Blueprints

Pasaje sobre este tema disponible aquí .

Puede ser una molestia hacerlo, pero parece que la solución más común para esto es detectar su entorno y escribir estilos independientes utilizando la base de datos de opciones externa . En la documentación aquí encontrará más información.

El antialiasing solo está habilitado para el objeto de canvas Tkinter en OSX. Puede obtener la aggDraw : http://effbot.org/zone/tkinter-aggdraw.htm como solución alternativa, pero de lo contrario obtendrá líneas irregulares cuando intente dibujar en un canvas. Sin embargo, las fonts deben ser suavizadas en todas las plataformas principales.

Considere la resolución del MAC como 1366×768 (esperado), suponga que está haciendo que su tamaño de Windows de aplicación sea 683×384 que es igual a (1366/2 x 768/2).

Cuando la aplicación se ejecute en una pantalla 4k, mostrará las dimensiones como 683×384 para la ventana principal, pero sus dimensiones en el 4k serán 4k / 2.

Entonces, lo que puede hacer es escribir un progtwig general con las dimensiones variables de las pantallas, para que ajuste el tamaño de la ventana de acuerdo con el tamaño de la pantalla.

Para obtener más detalles, consulte https://www.tutorialspoint.com/python3/python_gui_programming.htm

Espero que esto ayude.