Судя по вашим комментариям к вопросу, ваша главная проблема в том, что вы не знаете, как сделать менубар, поэтому я рассмотрю эту часть вопроса.
Каждое окно верхнего уровня (экземпляры Tk
и Toplevel
) имеют атрибут menu
, который можно установить на экземпляр объекта Menu
.Это меню само по себе может иметь выпадающие меню, и именно эта комбинация и составляет меню.
Чтобы выполнить эту работу, вы должны сначала создать меню, а затем связать это меню с окном.
import tkinter as tk
root = tk.Tk()
self.menubar = tk.Menu()
root.configure(menu=self.menubar)
Для создания подменю вы должны сделать что-то очень похожее.Сначала создайте новый экземпляр Menu
, затем свяжите его с меню с помощью add_cascade
.Как правило, меню будет дочерним от меню.Вы используете метод add_command
для добавления элементов в подменю.
В вашем случае вы можете создать меню «Вид» с элементами для переключения между «Вход» и «Продать».Это будет выглядеть примерно так:
viewMenu = tk.Menu(self.menubar)
self.menubar.add_cascade(label="View", menu=viewMenu)
viewMenu.add_command(label="Input", command=self.switch_to_input)
viewMenu.add_command(label="Sell", command=self.switch_to_sell)
Пример
Вот полный рабочий пример.Для простоты и по теме он фактически не переключает страницы.Вместо этого он просто отображает «страницу» в метке.
import tkinter as tk
class MenuExample:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, width=25)
self.label.pack(side="top", fill="both", expand=True, padx=20, pady=20)
self._create_menubar()
def _create_menubar(self):
# create the menubar
self.menubar = tk.Menu(self.root)
self.root.configure(menu=self.menubar)
# File menu
fileMenu = tk.Menu(self.menubar)
self.menubar.add_cascade(label="File", menu=fileMenu)
fileMenu.add_command(label="Exit", command=self.root.destroy)
# View menu
viewMenu = tk.Menu(self.menubar)
self.menubar.add_cascade(label="View", menu=viewMenu)
viewMenu.add_command(label="Input", command=self.switch_to_input)
viewMenu.add_command(label="Sell", command=self.switch_to_sell)
def switch_to_input(self):
# put the code to switch to the input page here...
self.label.configure(text="you clicked on View->Input")
def switch_to_sell(self):
# put the code to switch to the sell page here...
self.label.configure(text="you clicked on View->Sell")
app = MenuExample()
tk.mainloop()