Найти - Пользователи
Полная версия: tkinter, ширина рутового окна
Начало » GUI » tkinter, ширина рутового окна
1 2
dimy44
Начал сегодня разбираться с tkinter, возник вопрос: как задать ширину рутового окна относительно ширины дисплея монитора ?
4kpt_II
Проще всего вычислить.
Можно пользоваться следующим механизмом:
1. Определяем разрешение экрана пользователя (существует три метода).
2. Вычисляем необходимое значения разрешения для определенного процента от окна.
3. Изменяем корневое окно в зависимости от полученных в пункте 2 результатов.

P.S. Нужен код - пишите.
dimy44
Спасибо. Не, проблема не в коде, хочу разобраться с механизмом планировки виджетов здесь. Как я пока понял, тут нет такого понятия weidth, как в андроид, чтоб задавать размеры не конкретные, а относительные, и все надо вычислять руками ?
4kpt_II
Верно. Такие механизмы отсутствуют. Но можно написать их самому
Я уже много напилил для себя, но такой задачи не стояло, поэтому поделиться с Вами нечем…

P.S. Еще нужно не забывать, что некоторые виджеты имеют длину в пикселях, а некоторые в буквах.
dimy44
Ясно, спасибо. Меня это не пугает, т.к. это все знакомо по написанию графического гуя на симбиане, просто не хотелось бы оказаться в ситуации, когда пишешь что-то, а потом выясняется, что все можно сделать проще). Вопрос задал абстрактный, чтоб из ответа понять саму суть, что да как, теперь ясно все.
elisk
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
tkinter.mainloop()

Вы ничего, часом, мой друг, не перепутали?
elisk
4kpt_II
tkinter.mainloop()
Вы ничего, часом, мой друг, не перепутали?


Особой разницы нет, но правильней конечно будет:
root.mainloop()
4kpt_II
Это во-первых…
А во-вторых
4kpt_II
1. Определяем разрешение экрана пользователя (существует три метода).
Я про это уже написал.

P.S. Разница все-таки есть… Просто Вы о ней пока не знаете
elisk
4kpt_II
P.S. Разница все-таки есть… Просто Вы о ней пока не знаете
Так напишите. Проги работают и так и так.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB