Почему качество Tkinter намного хуже ухудшается на окнах?

Я разработал приложение python с Tkinter на Mac. Он включает в себя формы и рисунки холста. На Mac это выглядит великолепно. Однако на моем ноутбуке Dell (дисплей 4K и более мощный, чем мой Mac) Tkinter ui выглядит очень пиксельно, а некоторые элементы расположены несколько иначе. Как эта проблема известна и что я могу сделать, чтобы сделать Tkinter лучше на Dell Windows 10 или других платформах в целом? Вот скриншот той же части пользовательского интерфейса (показывающий форму и рисунок холста) …

Окна (плохо) введите описание изображения здесь

Mac (нормальный)

введите описание изображения здесь

введите описание изображения здесь

Различия в отображении одного и того же приложения обусловлены различиями в механизмах рендеринга, используемых каждой операционной системой.

Это описано в паб-электронной книге Pakt, которая называется Tkinter GUI Application Development Blueprints

прохождение этой темы доступно здесь .

Это может быть больно, но похоже, что наиболее распространенным решением для этого является обнаружение вашего окружения и запись независимых стилей с использованием базы данных внешних опций, более подробная информация доступна в документации здесь .

Сглаживание разрешено только для объекта холста Tkinter в OSX. Вы можете получить aggDraw lib: http://effbot.org/zone/tkinter-aggdraw.htm в качестве обходного пути, но в противном случае вы получите неровные линии при попытке рисовать на холсте. Однако шрифты должны быть сглажены на всех основных платформах.

Рассмотрим разрешение MAC как 1366×768 (ожидается). Предположим, вы делаете размер окна вашего приложения как 683×384, который равен (1366/2 x 768/2).

Когда приложение будет запущено на 4-кратном дисплее, оно отобразит размеры как 683×384 для главного окна, но его размеры на 4k будут 4k / 2.

Итак, что вы можете сделать, напишите общую программу с переменными размерами экранов, чтобы она отрегулировала размер окна в соответствии с размером экрана.

Для получения дополнительной информации см. https://www.tutorialspoint.com/python3/python_gui_programming.htm

Надеюсь, это поможет.