Переключение между кадрами в tkinter - PullRequest
0 голосов
/ 25 мая 2019

Я новичок в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...