Код: Выделить всё
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)
Я предполагаю, что TkInter вычисляет ширину в мм на основе какого-то внутреннего DPI, ошибочно определенного как 96. , но я не уверен, откуда он это взял; Сейчас я работаю в Linux, и xrdb -query возвращает DPI, равный 196, поэтому он не получает DPI от X-сервера.
Кто-нибудь знает кросс-платформенный способ получить разрешение экрана или заставить TkInter правильно его получить? Или, более конкретно: как я могу заставить TkInter хорошо работать с экранами HiDPI, а также нормально работать на обычных? Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/429 ... pplication