Как перейти на следующую страницу в программе в Tkinter

Многостраничное приложение нуждается в опции, в которой пользователи могут переключаться или переключаться между разными страницами. Итак, в этом уроке мы узнаем, как перейти на следующую страницу в программе Python Tkinter.

Когда есть ссылка на следующую страницу, добавленную в определенный виджет, и пользователь нажимает на этот виджет, он переходит на следующую страницу. В то же время происходит еще одна вещь: предыдущая страница закрывается или уничтожается.

Перейти на следующую страницу в Python Tkinter

Каждый файл .py можно рассматривать как модуль, и мы можем импортировать их по мере необходимости. С другой стороны, мы можем уничтожить предыдущую страницу, используя встроенный метод destroy. Давайте посмотрим на вещи в действии в этой небольшой программе.

Фрагмент кода:

  • В этом коде мы создали 3 страницы, и на каждой странице есть две кнопки.
  • первая кнопка будет переходить на следующую страницу, а другая — на предыдущую. Щелчок по любой из страниц вызовет функцию, при которой текущая страница будет уничтожена, а новая страница будет импортирована .
  • Страницы называются page1 , page2 и page3.
  • Все страницы имеют практически одинаковый код. Главное, на что следует обратить внимание, — это страницы импорта. Каждая страница импортирует разные страницы.
def nextPage():
    ws.destroy()
    import page2
  • nextPage() : это имя функции
  • ws.destroy() : это закроет текущую страницу
  • import page2 : страница2 начнет отображаться.

Страница 1

Это исходный код для создания page1.py . Создайте новый файл с именем page1.py, а затем скопируйте и вставьте приведенный ниже код.

from tkinter import *

ws = Tk()
ws.geometry('400x300')
ws.title('PythonGuides')
ws['bg']='#5d8a82'

f = ("Times bold", 14)

def nextPage():
    ws.destroy()
    import page2

def prevPage():
    ws.destroy()
    import page3
    
Label(
    ws,
    text="This is First page",
    padx=20,
    pady=20,
    bg='#5d8a82',
    font=f
).pack(expand=True, fill=BOTH)

Button(
    ws, 
    text="Previous Page", 
    font=f,
    command=nextPage
    ).pack(fill=X, expand=TRUE, side=LEFT)

Button(
    ws, 
    text="Next Page", 
    font=f,
    command=prevPage
    ).pack(fill=X, expand=TRUE, side=LEFT)

ws.mainloop()

Страница 2

Это исходный код для создания page2.py . Создайте новый файл с именем page2.py, а затем скопируйте и вставьте приведенный ниже код.

from tkinter import *

ws = Tk()
ws.geometry('400x300')
ws.title('PythonGuides')
ws['bg']='#ffbf00'

f = ("Times bold", 14)
 
def nextPage():
    ws.destroy()
    import page3

def prevPage():
    ws.destroy()
    import page1

Label(
    ws,
    text="This is Second page",
    padx=20,
    pady=20,
    bg='#ffbf00',
    font=f
).pack(expand=True, fill=BOTH)

Button(
    ws, 
    text="Previous Page", 
    font=f,
    command=nextPage
    ).pack(fill=X, expand=TRUE, side=LEFT)
Button(
    ws, 
    text="Next Page", 
    font=f,
    command=prevPage
    ).pack(fill=X, expand=TRUE, side=LEFT)

ws.mainloop()

Страница 3

Это исходный код для создания page3.py . Создайте новый файл с именем page3.py, а затем скопируйте и вставьте приведенный ниже код.

from tkinter import *

ws = Tk()
ws.geometry('400x300')
ws.title('PythonGuides')
ws['bg']='#ffbf00'

f = ("Times bold", 14)

def nextPage():
    ws.destroy()
    import page1

def prevPage():
    ws.destroy()
    import page2
    
Label(
    ws,
    text="This is Third page",
    font = f,
    padx=20,
    pady=20,
    bg='#bfff00'
).pack(expand=True, fill=BOTH)

Button(
    ws, 
    text="Previous Page", 
    font=f,
    command=nextPage
    ).pack(fill=X, expand=TRUE, side=LEFT)

Button(
    ws, 
    text="Next Page",
    font = f,
    command=prevPage
    ).pack(fill=X, expand=TRUE, side=LEFT)

ws.mainloop()

В этом выводе вы можете увидеть три страницы. Каждая страница имеет ярлык и две кнопки. Эти кнопки предназначены для перехода пользователя на предыдущую или следующую страницу.