Всем привет. Продолжим изучение библиотеки tkinter в python которая позволяет писать нам графический интерфейс. Тема сегодняшней статьи работа с окнами программы.
Рассмотрим следующий код:
from tkinter import *
window = Tk()
window.mainloop()
Здесь мы создали главное окно программы. Заметьте что оно имеет определенные размеры и заголовок Tk.
Допустим мы хотим чтобы наше главное окно имело заголовок 'main' и размеры 400x400.
from tkinter import *
window = Tk()
window.title("main") #устанавливаем заголовок main
window.minsize(width=400,height=400) #устанавливаем ширину и высоту
window.mainloop()
Для этого в библиотеке tkinter существует метод title() который устанавливает заголовок и minize(), устанавливает ширину и высоту окна.
Для того чтобы окну задать определенный фон мы можем воспользоваться элементом frame:
frame = Frame(window, width=400,height=400,bg="green")
frame.pack()
здесь через класс Frame мы создали элемент frame.
В класс мы передали следующие аргументы:
window - объект главного окна
width и height - ширина и высота(совпадают с параметрами главного окна)
bg - цвет фона(green - зеленный)
В результате цвет фона нашего главного окна стал зеленым. Сам по себе виджет frame представляет собой рамки с помощью которых мы можем более гибко структурировать данные в окне.
Приведу пример:
from tkinter import *
window = Tk()
window.title("Главное окно")
window.minsize(width=400,height=400)
frame = Frame(window, width=400,height=100)
frame2 = Frame(window, width=200,height=50,bg="white")
frame3 = Frame(window, width=200,height=50,bg="blue")
frame4 = Frame(window, width=200,height=50,bg="red")
frame.pack()
frame2.pack()
frame3.pack()
frame4.pack()
window.mainloop()
Мы нарисовали флаг Российской Федерации в самом центре нашего главного окна используя виджет Frame. Помимо всего прочего мы можем в фрейм помещать другие элементы.
text = Text(frame2, width=25,height=2)
text.pack()
Например здесь мы текстовое поле поместили в frame2
И напоследок мы рассмотрим как создавать дополнительные(дочерние окна).
Дочерние окна создаются с помощью класса Toplevel которому передается в качестве аргумента объект главного окна.
children = Toplevel(window)
children.title("Дочернее окно")
children.minsize(width=400,height=200)
В данном примере мы создали дополнительное окно с размерами 400x200 и заголовком 'Дочернее окно'. Теперь мы можем обращаться и работать с ним через объект children. Отмечу что дочерних окон мы можем создавать сколько угодно.
Однако стоит помнить, что если мы закрываем наше главное окно, то все дочерние элементы закроются вместе с ним.
На этом данная статья подошла к концу. Надеюсь она была для вас полезной.
Желаю удачи и успехов! Пока!