2017-01-24 2 views
1

Я понимаю, что это тривиальный вопрос, но я все же смущен.Что такое единицы холста, указанные для Tkinter?

У меня есть 13-дюймовый MacBook Pro с дисплеем сетчатки. Моя система заявляет о разрешении 2560 на 1600 в системном отчете. Я предположил, что команда Canvas в tkinter измеряет высоту и ширину в пикселях, и tk documentation, похоже, тоже указывают это. Однако следующий код, где я использую 1200 в качестве ширины и 700 в качестве высоты холста tkinter, создает холст, который в основном заполняет мой экран.

Какие единицы являются высота и ширина холста?

from tkinter import * 

master = Tk() 

x = 1200 
y = 700 

w = Canvas(master, width=x, height=y) 
w.pack() 


mainloop() 
+0

это должно быть что-то с настройкой «точек на пиксель», где экран сетчатки использует 2 точки (что вы измеряете как 2560x1600) для 1 пикселя (определяется программой). Wikipedia [говорит] (https://en.wikipedia.org/wiki/Retina_Display): _ Когда у продукта Apple есть Retina Display, каждый виджет пользовательского интерфейса удваивается по ширине и высоте, чтобы компенсировать меньшие пиксели. Apple звонит в этот режим HiDPI mode_ –

+0

@CiprianTomoiaga Ах, это делает полный смысл. Благодарю. Я не знал об этом. – Potato

ответ

5

Вы правы, TkInter измеряет размер в пикселях. НО:

Retina Display имеет более высокую плотность оборудования пикселей, чтобы сделать дисплей более четким. Однако обратите внимание, что они не соответствуют 1-к-1 для рендеринга пикселей, которые используются программами. От Wikipedia:

Когда продукт Apple, имеет дисплей Retina, каждый интерфейс пользователя виджет удваивается по ширине и высоте, чтобы компенсировать меньшие пикселей. Apple звонит в этот режим Режим HiDPI

Это также относится к любому дисплею с высокой плотностью пикселей (DPI). Итак, если вы хотите, чтобы ваши виджеты находились в определенном проценте от ширины/высоты экрана, вы должны сначала определить, находитесь ли вы на экране HiDPI и соответствующим образом масштабируете свой виджет. This question может помочь.

Смежные вопросы