Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python tkinter在其框架外创建小部件_Python_Python 3.x_Tkinter - Fatal编程技术网

python tkinter在其框架外创建小部件

python tkinter在其框架外创建小部件,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我想在他的框架外创建一个小部件,但我不知道他的主人是什么 这就是结构。 首先,我创建了根的类。然后是3类框架。 在根的类中,我放置了一个函数。在函数中,我创建了一个文本小部件,它应该位于3个框架中的第一个框架中 作为文本小部件的主控程序,我真的无法在第一帧中找到它 因为我是初学者,如果你有什么建议,我将非常感激。 谢谢你的关注这是代码 import tkinter as tk from tkinter import ttk from PIL import Image, ImageTk impor

我想在他的框架外创建一个小部件,但我不知道他的主人是什么

这就是结构。 首先,我创建了根的类。然后是3类框架。 在根的类中,我放置了一个函数。在函数中,我创建了一个文本小部件,它应该位于3个框架中的第一个框架中

作为文本小部件的主控程序,我真的无法在第一帧中找到它

因为我是初学者,如果你有什么建议,我将非常感激。 谢谢你的关注这是代码

import tkinter as tk
from tkinter import ttk
from PIL import Image, ImageTk
import datetime

LARGE_FONT = ("VERDANA", 12)


#user's information manager(classes and method)



class person:
    def __init__(self, name, birthday, sex):
        self.name = name
        self.birthday = birthday
        self.sex = sex

    def age(self, name, birthday):
        user = person(name, birthday, "male")
        today = datetime.date.today()

        print (today.year - self.birthday.year)




#main windows

class deathCalculatorapp(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        tk.Tk.wm_title(self, "age calculator app")




        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, PageTwo):
            page_name = F.__name__
            frame = F(parent=container, controller=self)
            self.frames[page_name] = frame

        # put all of the pages in the same location;
        # the one on the top of the stacking order
        # will be the one that is visible.
        frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame("StartPage")


# all methods here

    def show_frame(self, page_name):
        '''Show a frame for the given page name'''
        frame = self.frames[page_name]
        frame.tkraise()


    def calculate(self, name, birthday):
        user = person(name, birthday, "male")
        text_answer = tk.Text(master = , height=3, width=30)
        text_answer.grid(column=1, row=9)
        answear_text = ("{name} is {age} years    old".format(name=name_entry.get(), age=calculate()))
        text_answer.insert(tk.END, answear_text)
        print (user.age()


    #all of the frames

class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller



    #Labels

    label = ttk.Label(self, text="deathcalculatorapp", font=LARGE_FONT)
    label.grid(column=1, row=0)

    first_label = ttk.Label(self, text = "insert your data")
    name_label= tk.Label(self, text = "name", bg="lightblue")
    year_label = tk.Label(self, text="year", bg ="lightblue", padx=9)
    month_label = tk.Label(self, text= "month", bg = "lightblue", padx=3)
    day_label = tk.Label(self, text ="day", bg= "lightblue", padx=11)

    first_label.grid(column=1, row=3)
    name_label.grid(column=0, row=4)
    year_label.grid(column=0, row =5)
    month_label.grid(column=0, row =6)
    day_label.grid(column=0, row = 7)




    #Entries

    name_entry = tk.Entry(self, text = "", bg = "lightblue")
    year_entry = tk.Entry(self,text = "", bg = "lightblue")
    month_entry = tk.Entry(self, text = "", bg= "lightblue")
    day_entry = tk.Entry(self, text= "", bg = "lightblue")



    name_entry.grid(column=1, row=4)
    year_entry.grid(column=1,row=5)
    month_entry.grid(column=1, row= 6)
    day_entry.grid(column=1, row=7)



    #Radiobutton about sex

    sexdatum = tk.IntVar()
    female= ttk.Radiobutton(self, text="female",variable= sexdatum, value="female")
    male=ttk.Radiobutton(self, text="male", variable= sexdatum, value="male")
    female.grid(column=2, row=4)
    male.grid(column=2, row=5)





    #Buttons

    calculate_button = ttk.Button(self, text="calculate your lifespawn",
                                  command=lambda: controller.age(name_entry.get(),datetime.date(int(year_entry.get()),int(month_entry.get()),int(day_entry.get()))))
    calculate_button.grid(column=1, row=8)
    button1 = ttk.Button(self, text="Go to Page One",
                         command=lambda: controller.show_frame("PageOne"))
    button2 = ttk.Button(self, text="Go to Page Two",
                         command=lambda: controller.show_frame("PageTwo"))
    button1.grid(column=0, row=0)
    button2.grid(column=0, row=1)



    #text



    #image

    image = Image.open(r"/"
                       r"Users/tommasomasaracchio/Documents/pythonfolder/kushina4.jpg")
    image.thumbnail((500,300), Image.ANTIALIAS)
    photo = ImageTk.PhotoImage(image)

    Photo_label= ttk.Label(self, image=photo)
    Photo_label.image = photo
    Photo_label.grid(row= 2, column = 1)






class PageOne(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    self.controller = controller
    label = ttk.Label(self, text="This is page 1", font=LARGE_FONT)
    label.grid(column=0, row=0)
    button = ttk.Button(self, text="Go to the start page",
                       command=lambda: controller.show_frame("StartPage"))
    button.grid(column=0, row=0)


class PageTwo(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    self.controller = controller
    label = ttk.Label(self, text="This is page 2", font=LARGE_FONT)
    label.grid(column=0, row=0)
    button = ttk.Button(self, text="Go to the start page",
                       command=lambda:       controller.show_frame("StartPage"))
        button.grid(column=0, row=0)






if __name__ == "__main__":
    app = deathCalculatorapp()
    app.mainloop()

它应该是
master=self.frames['StartPage']

欢迎使用!请隔离您的问题,做好准备,并将其粘贴到此处,然后选择所有问题,并使用
{}
Ctrl-K
将其格式化,以提供问题。