多框笔记本电脑

时间:2018-08-06 23:35:59

标签: python python-3.x tkinter

我试图制作一个带有多个框架的tkinter寡妇,但也要使笔记本具有多个寡妇的功能。问题是我对tkinter有点陌生,并且不确定如何做到这一点。这是我当前的代码,它不起作用,并且很想知道我应该怎么做才能使其起作用。再一次,梦想的最终结果是我将拥有第一个寡妇,它说出测试文本,然后是第二个窗口,其中有多个选项卡。

from tkinter import ttk
import tkinter as tk


Font= ("Verdana", 8)
LargeFont = ("Verdana", 12)


class App(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)
        container = tk.Frame(self)

        container.pack(side="top", fill="both", expand = True)

        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}

        for F in (StartPage, PageOne):

            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):

        frame = self.frames[cont]
        frame.tkraise()


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        label = tk.Label(self, text="Info", font=LargeFont)
        label.pack(pady=2,padx=10)
        text = tk.Label(self, text="testtestestetetqwegfegeg\ntestwegwegwegweg", font=Font)
        text.pack(pady=2,padx=2)

        button = tk.Button(self, text="Go to the Card",
                        command=lambda: controller.show_frame(PageOne))
        button.pack(fill="x")


class PageOne(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        nb = ttk.Notebook(ttk.Frame())
        nb.grid(row=1, column=0, columnspan = 50, rowspan=49, sticky='nesw')
        p1 = (nb)
        nb.add(p1, text='test')
        label = tk.Label(self, text="", font=LargeFont)
        label.pack(pady=10,padx=10)

        button1 = tk.Button(self, text="Back to Home",
                        command=lambda: controller.show_frame(StartPage))
        button1.pack()





app = App()
app.mainloop()

我最终得到的错误是它创建了第三帧,并与“测试”选项卡一起显示。其他一切正常。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我完全明白你的意思,因为我也在尝试。给我

    nb = ttk.Notebook(self)

工作。

最好的 普坎达 Taubate 巴西