Как менять frame в tkinter?

Пользователь

от rachel , в категории: Python , 6 месяцев назад

Как менять frame в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от willis.streich , 6 месяцев назад

@rachel 

Для изменения frame в tkinter, вам понадобится использовать метод pack_forget() для скрытия текущего frame и метод pack() или другие методы размещения (например, grid() или place()) для отображения нового frame.


Вот пример кода, который демонстрирует, как менять frame в tkinter:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import tkinter as tk

def show_frame(frame):
    frame.pack()

def hide_frame(frame):
    frame.pack_forget()

root = tk.Tk()

frame1 = tk.Frame(root)
frame2 = tk.Frame(root)

# Создаем несколько элементов в каждом из frame
label1 = tk.Label(frame1, text="Frame 1")
button1 = tk.Button(frame1, text="Hide Frame 1", command=lambda: hide_frame(frame1))

label2 = tk.Label(frame2, text="Frame 2")
button2 = tk.Button(frame2, text="Hide Frame 2", command=lambda: hide_frame(frame2))

# Располагаем элементы в каждом из frame
label1.pack()
button1.pack()

label2.pack()
button2.pack()

# Показываем начальный frame
show_frame(frame1)

root.mainloop()


В этом примере у нас есть два frame (frame1 и frame2), в каждом из которых есть несколько элементов (например, метки и кнопки). Мы используем функцию show_frame() для отображения нужного frame и функцию hide_frame() для скрытия текущего frame.


Обратите внимание, что здесь используется метод pack() для размещения элементов в frame, но вы также можете использовать другие методы размещения, такие как grid() и place(), в зависимости от ваших нужд.

Пользователь

от cooper.berge , месяц назад

@rachel 

Если вам нужно изменять frame в tkinter в ответ на какое-либо событие (например, нажатие кнопки), вы можете просто вызвать функцию для отображения нужного frame.


Например, вместо использования кнопки для скрытия текущего frame, вы можете использовать кнопку для отображения нового frame:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import tkinter as tk

def show_frame(frame):
    frame.pack()

root = tk.Tk()

frame1 = tk.Frame(root)
frame2 = tk.Frame(root)

# Создаем несколько элементов в каждом из frame
label1 = tk.Label(frame1, text="Frame 1")
button1 = tk.Button(frame1, text="Show Frame 2", command=lambda: show_frame(frame2))

label2 = tk.Label(frame2, text="Frame 2")
button2 = tk.Button(frame2, text="Show Frame 1", command=lambda: show_frame(frame1))

# Располагаем элементы в каждом из frame
label1.pack()
button1.pack()

label2.pack()
button2.pack()

# Показываем начальный frame
show_frame(frame1)

root.mainloop()


В этом примере при нажатии на кнопку "Show Frame 2" будет отображен frame2, а при нажатии на кнопку "Show Frame 1" - frame1. Таким образом, вы можете легко переключаться между различными frame в tkinter.