Я новичок в tkinter.Мы создаем программное обеспечение диспетчера паролей, которое имеет рамку кнопки слева и содержимое справа. Я хочу переключать содержимое справа, зависит от нажатия кнопки.
Я пробовал разныепараметры, которые я нашел в Интернете, но не получил желаемый результат.
from tkinter import *
from tkinter import ttk
import tkinter as tk
root = tk.Tk()
root.wm_geometry("1000x700")
root.title("LockIt")
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=4)
root.rowconfigure(0, weight=1)
class Page(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
def show(self):
self.lift()
class MainView(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
# pages declarations
p1 = PasswordPage(self)
p2 = MediaPage(self)
p3 = DocumentPage(self)
#seperate main window in two frames
self.buttonframe = Frame(root, bg='lightgrey')
self.container = Frame(root, bg='white')
self.buttonframe.grid(row=0,column=0,sticky=(N, S, E, W))
self.container.grid(row=0,column=1,sticky=(N, S, E, W))
self.container.rowconfigure(0,weight=1)
self.container.columnconfigure(0, weight=1)
p1.grid(row=0,column=0,in_=self.container,sticky=(N, S, E, W))
p2.grid(row=0,column=0,in_=self.container,sticky=(N, S, E, W))
p3.grid(row=0,column=0,in_=self.container,sticky=(N, S, E, W))
# Button frame
my_pass_button = Button(self.buttonframe, text="Passwords", fg="Black", bg="grey", height=6,command=p1.lift)
my_pass_button.pack(side="top", fill=X)
my_med_button = Button(self.buttonframe, text="Media", fg="Black", bg="grey", height=6,command=p2.lift)
my_med_button.pack(side="top", fill=X)
my_doc_button = Button(self.buttonframe, text="Documents", fg="Black", bg="grey", height=6,command=p3.lift)
my_doc_button.pack(side=TOP, fill=X)
class PasswordPage(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
label = tk.Label(self, text="This is page 1")
label.pack(side="top", fill="both", expand=True)
class MediaPage(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
label = tk.Label(self, text="This is page 2")
label.pack(side="top", fill="both", expand=True)
class DocumentPage(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
label = tk.Label(self, text="This is page 3")
label.pack(side="top", fill="both", expand=True)
main = MainView(root)
root.mainloop()
Traceback (последний вызов был последним): Файл "C: / Users / Kate / Desktop / seneca / semester 6/PRJ666/lockit/PrototypeTry.py ", строка 194, в main = MainView (корневой) файл" C: / Users / Kate / Desktop / seneca / semester 6 / PRJ666 / lockit / PrototypeTry.py ", строка 75, в init p1.grid (строка = 0, столбец = 0, in_ = self.container, sticky = (N, S, E, W)) Файл "C: \ Users \ Kate \ AppData \ Local \ Programs\ Python \ Python37-32 \ lib \ tkinter__init __. Py ", строка 2226, в grid_configure + self._options (cnf, kw)) _tkinter.TclError: невозможно поместить.! Mainview.! Страница пароля внутри.! Frame2
Процесс завершен с кодом выхода 1