dimy44
Дек. 1, 2013 13:23:11
Начал сегодня разбираться с tkinter, возник вопрос: как задать ширину рутового окна относительно ширины дисплея монитора ?
4kpt_II
Дек. 1, 2013 13:42:29
Проще всего вычислить.
Можно пользоваться следующим механизмом:
1. Определяем разрешение экрана пользователя (существует три метода).
2. Вычисляем необходимое значения разрешения для определенного процента от окна.
3. Изменяем корневое окно в зависимости от полученных в пункте 2 результатов.
P.S. Нужен код - пишите.
dimy44
Дек. 1, 2013 14:04:59
Спасибо. Не, проблема не в коде, хочу разобраться с механизмом планировки виджетов здесь. Как я пока понял, тут нет такого понятия weidth, как в андроид, чтоб задавать размеры не конкретные, а относительные, и все надо вычислять руками ?
4kpt_II
Дек. 1, 2013 14:11:32
Верно. Такие механизмы отсутствуют. Но можно написать их самому
Я уже много напилил для себя, но такой задачи не стояло, поэтому поделиться с Вами нечем…
P.S. Еще нужно не забывать, что некоторые виджеты имеют длину в пикселях, а некоторые в буквах.
dimy44
Дек. 1, 2013 14:22:49
Ясно, спасибо. Меня это не пугает, т.к. это все знакомо по написанию графического гуя на симбиане, просто не хотелось бы оказаться в ситуации, когда пишешь что-то, а потом выясняется, что все можно сделать проще). Вопрос задал абстрактный, чтоб из ответа понять саму суть, что да как, теперь ясно все.
elisk
Дек. 2, 2013 19:18:23
import tkinter # для Python 2.X tkinter заменить Tkinter
root = tkinter.Tk() # для Python 2.X tkinter заменить Tkinter
x = root.winfo_screenwidth() # размер по горизонтали
y = root.winfo_screenheight() # размер по вертикали
# создадим фрейм по половине ширины и длины экрана
frame = tkinter.Frame(root, width=x/2, height=y/2, bg='gray') # для Python 2.X tkinter заменить Tkinter
frame.pack(side='top', expand=True, fill="both")
tkinter.mainloop() # для Python 2.X tkinter заменить Tkinter
4kpt_II
Дек. 2, 2013 19:19:48
Вы ничего, часом, мой друг, не перепутали?
elisk
Дек. 2, 2013 19:25:52
4kpt_II
tkinter.mainloop()
Вы ничего, часом, мой друг, не перепутали?
Особой разницы нет, но правильней конечно будет:
root.mainloop()
4kpt_II
Дек. 2, 2013 19:28:36
Это во-первых…
А во-вторых
4kpt_II
1. Определяем разрешение экрана пользователя (существует три метода).
Я про это уже написал.
P.S. Разница все-таки есть… Просто Вы о ней пока не знаете
elisk
Дек. 2, 2013 19:37:45
4kpt_II
P.S. Разница все-таки есть… Просто Вы о ней пока не знаете
Так напишите. Проги работают и так и так.