繁体   English   中英

我不断收到这个错误,称为“框架对象不可调用”

[英]I keep on getting this error called "frame object is not callable"

我正在尝试制作一个代码,您可以在其中输入您的姓名和出生日期,并在下拉列表中询问您的性别,它将所有内容分类到列表框中。 这是我的代码。 错误在第 118 行 "add = Button(fr, text="submit", command=lambda:[adi(), gen(), age()]).pack()" ,它说框架对象是不可调用

from tkinter import*
from datetime import date
from tkinter import messagebox
one = Tk()
one.title("cideytfydy")
one.state("zoomed")
today = date.today()




clicked = StringVar()
clicked.set("Male")
def adi():
    a.insert(END, e.get())
def gen():
    if clicked.get() == "Male":
        b.insert(END, e.get())
    else:
        c.insert(END, e.get())
def age():
    d= int(birth_day.get())
    m=int(birth_month.get())
    y=int(birth_year.get())
    age = today.year-y-((today.month, today.day)<(m,d))
two = [
"Male",
"Female"
]

frame = Frame(one)
frame.pack(pady=5)

lf = Frame(frame)
lf.pack(pady=5)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Name")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

a = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
a.pack(side=LEFT, fill=BOTH, padx=10)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Male")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

b = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
b.pack(side=LEFT, fill=BOTH, padx=10)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Female")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

c = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
c.pack(side=LEFT, fill=BOTH,padx=10)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Age")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

d = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
d.pack(side=LEFT, fill=BOTH, padx=10)

fr = Frame(one)
fr.pack(pady=20)


e = Entry(fr, font=("Futura", 30))
e.pack(pady=20)



age = Frame(fr)
age.pack(pady=10)

xo = Frame(age)
xo.pack()

Label(xo, text="Birth Year", font=("Futura", 30)).pack(pady=10, side=LEFT, padx=120)
Label(xo, text="Birth Month", font=("Futura", 30)).pack(pady=10, side=LEFT, padx=120)
Label(xo, text="Birth Date", font=("Futura", 30)).pack(pady=10, side=LEFT, padx=120)

yearvalue = StringVar()
monthvalue = StringVar()
dayvalue = StringVar()

birthyear = Entry(age, textvariable=yearvalue, font=("Futura", 30))
birthyear.pack(pady=20, padx=20, side=LEFT)
                 
birthmonth = Entry(age, textvariable=monthvalue, font=("Futura", 30))
birthmonth.pack(pady=20, padx=20, side=LEFT)

birthday = Entry(age, textvariable=dayvalue, font=("Futura", 30))
birthday.pack(pady=20, padx=20, side=LEFT)

drop = OptionMenu(fr, clicked, *two ).pack(pady=10)   
add = Button(fr, text="submit", command=lambda:[adi(), gen(), age()]).pack()




#LABEL/BUTTON

one.mainloop()

我不断收到此错误,称为 Frame object is not callable 在第 118 行

第 118 行就是这一行。 “add = Button(fr, text="submit", command=lambda:[adi(), gen(), age()]).pack()”

有人能帮我解决这个问题吗?

您的代码还有许多其他问题需要解决。 我只修复了其中一些,所以现在你提到的错误消息消失了:

from datetime import date
from tkinter import messagebox, Tk, StringVar, Frame, Label, LEFT, BOTH, Listbox, Entry, OptionMenu, Button, END
# from tkinter import *

one = Tk()
one.title("cideytfydy")
one.state("normal")
today = date.today()

clicked = StringVar()
clicked.set("Male")
def adi():
    print("adi")
    a.insert(END, e.get())
    a.update()
def gen():
    print("gen")
    if clicked.get() == "Male":
        b.insert(END, e.get())
    else:
        c.insert(END, e.get())
def age():
    print("age")
    d   = int(birth_day.get())
    m   = int(birth_month.get())
    y   = int(birth_year.get())
    age = today.year-y-((today.month, today.day)<(m,d))

def subm():
    adi()
    gen()
    age()


two = [
"Male",
"Female"
]

frame = Frame(one)
frame.pack(pady=5)

lf = Frame(frame)
lf.pack(pady=5)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Name")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

a = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
a.pack(side=LEFT, fill=BOTH, padx=10)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Male")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

b = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
b.pack(side=LEFT, fill=BOTH, padx=10)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Female")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

c = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
c.pack(side=LEFT, fill=BOTH,padx=10)

my_label = Label(lf, font=("Futura", 40),fg="#FFFFFF", text="Age")
my_label.pack(side=LEFT, fill=BOTH, padx=120)

d = Listbox(frame,
font=("Futura", 25),
width=20,
height=6,
bd=2,
fg='#FFFFFF'
)
d.pack(side=LEFT, fill=BOTH, padx=10)

fr = Frame(one)
fr.pack(pady=20)


e = Entry(fr, font=("Futura", 30))
e.pack(pady=20)

agf = Frame(fr)
agf.pack(pady=10)

xo = Frame(agf)
xo.pack()

Label(xo, text="Birth Year", font=("Futura", 30)).pack(pady=10, side=LEFT, padx=120)
Label(xo, text="Birth Month", font=("Futura", 30)).pack(pady=10, side=LEFT, padx=120)
Label(xo, text="Birth Date", font=("Futura", 30)).pack(pady=10, side=LEFT, padx=120)

yearvalue = StringVar()
monthvalue = StringVar()
dayvalue = StringVar()

birth_year = Entry(agf, textvariable=yearvalue, font=("Futura", 30))
birth_year.pack(pady=20, padx=20, side=LEFT)
                 
birth_month = Entry(agf, textvariable=monthvalue, font=("Futura", 30))
birth_month.pack(pady=20, padx=20, side=LEFT)

birth_day = Entry(agf, textvariable=dayvalue, font=("Futura", 30))
birth_day.pack(pady=20, padx=20, side=LEFT)

drop = OptionMenu(fr, clicked, *two ).pack(pady=10)   
# add = Button(fr, text="submit", command=subm).pack() # lambda:[adi(), gen(), agf()]).pack()
add = Button(fr, text="submit", command=lambda:[adi(), gen(), age()]).pack()
#LABEL/BUTTON

one.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM