Есть ли способ изменить коэффициент масштабирования Windows в Python

#python #windows #tkinter

Вопрос:

Есть ли способ изменить коэффициент масштабирования Windows с помощью python? Мои приложения Tkinter рассчитаны на 1920×1280 и Масштабный коэффициент 100%, но некоторые из моих клиентов используют мои приложения на планшете с масштабным коэффициентом 150%, и мои окна Tkinter слишком велики в этой среде.

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

Комментарии:

1. Вы можете поместить все свои виджеты на холст, а затем увеличить или уменьшить масштаб этого холста. Для определения коэффициента масштабирования можно использовать <any widget>.winfo_screenheight() и. <any widget>.winfo_screenwidth()

2. У меня есть все мои виджеты в одном мейнфрейме. Вы имеете в виду, что я должен поместить этот мэйнфрейм в холст и масштабировать его методом масштабирования холста? Я пытался это сделать, но это не сработало

Ответ №1:

Если вы хотите, чтобы окно соответствовало размеру устройства, используйте следующее:

 window.state("zoomed")
 

Это максимизирует ваше окно.
Если вы хотите просто получить ширину экрана и высоту экрана устройства, используйте:

 width = window.winfo_screenwidth()
height = window.winfo_screenheight()
 

Затем вы можете использовать их для настройки геометрии окна:

 window.geometry("%dx%d" % (width, height))
 

Комментарии:

1. Да, это изменяет размер окна. Но размеры и расположение шрифтов и все остальное остается прежним. from pywinauto import Desktop изменяет размер всего интерфейса… Работает как заклинание

2. О, я думал, вы хотели изменить только разрешение окна. Хотя спасибо , что познакомил меня с from pywinauto import Desktop этим! Я никогда не слышал об этом раньше

Ответ №2:

Я обнаружил это, когда добавил

 from pywinauto import Desktop
 

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