Определить коэффициент DPI/масштабирования в приложении Python TkInterPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Определить коэффициент DPI/масштабирования в приложении Python TkInter

Сообщение Anonymous »

Мне бы хотелось, чтобы мое приложение могло определять, работает ли оно на экране HiDPI, и если да, то масштабировать себя, чтобы его можно было использовать. Как сказано в этом вопросе, я знаю, что мне нужно установить коэффициент масштабирования, и что этот коэффициент должен быть моим DPI, разделенным на 72; моя проблема в том, чтобы получить мой DPI. Вот что у меня есть:

Код: Выделить всё

def get_dpi(window):
MM_TO_IN = 1/25.4
pxw = window.master.winfo_screenwidth()
inw = window.master.winfo_screenmmwidth() * MM_TO_IN
return pxw/inw

root = Tk()
root.tk.call('tk', 'scaling', get_dpi(root)/72)
Это не работает (тестировалось на экране моего ноутбука с разрешением 4K). При дальнейшем рассмотрении я понял, что get_dpi() возвращает 96,0, а winfo_screenmmwidth() возвращает 1016! (К счастью, ширина моего ноутбука не превышает метра).

Я предполагаю, что TkInter вычисляет ширину в мм на основе какого-то внутреннего DPI, ошибочно определенного как 96. , но я не уверен, откуда он это взял; Сейчас я работаю в Linux, и xrdb -query возвращает DPI, равный 196, поэтому он не получает DPI от X-сервера.

Кто-нибудь знает кросс-платформенный способ получить разрешение экрана или заставить TkInter правильно его получить? Или, более конкретно: как я могу заставить TkInter хорошо работать с экранами HiDPI, а также нормально работать на обычных? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/429 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать координату в собственном DPI в координату в логике DPI WPF?
    Anonymous » » в форуме C#
    0 Ответы
    64 Просмотры
    Последнее сообщение Anonymous
  • Как получить максимальный уровень масштабирования (не коэффициент) на iPhone?
    Anonymous » » в форуме IOS
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Как получить максимальный уровень масштабирования (не коэффициент) на iPhone?
    Гость » » в форуме IOS
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • Коэффициент масштабирования камеры от 1x до 3x в течение 0,25 секунды для iPhone
    Anonymous » » в форуме IOS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Коэффициент масштабирования камеры от 1x до 3x в течение 0,25 секунды для iPhone
    Anonymous » » в форуме IOS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»