place_configure()失踪1个人需要的位置参数:“自我”
问题描述:
我试图使用滚动条与我的项目。我有一个代码,在一个框架内的一个画布内创建一个框架,以便将标签放到框架上,然后滚动。这是一些代码:place_configure()失踪1个人需要的位置参数:“自我”
statWindow = Tk()
statWindow.title("View Statistics")
statWindow.config(bg = "grey")
statWindow.geometry('600x700')
myframe =Frame(statWindow, relief=GROOVE, width=550, height=400, bd=1)
myframe.place(x=20, y=90)
canvas = Canvas(myframe)
frame = Frame(canvas)
myscrollbar = Scrollbar(myframe, orient="vertical", command=canvas.yview)
canvas.configure(width=530, height=400, yscrollcommand=myscrollbar.set)
myscrollbar.pack(side="right", fill="y")
canvas.pack(side="left")
canvas.create_window((0, 0), window=frame, anchor='nw')
frame.bind("<Configure>", myfunction)
def myfunction(event):
global canvas
canvas.configure(scrollregion=canvas.bbox("all"),width=530,height=400)
然后我有代码:
Label(frame,text="hello", height=1, width=14, bg="white").grid(row=1, column=1)
这工作完全,但我真的需要使用.place() Allthough当我改变标签代码到:
Label(frame,text="hello", height=1, width=14, bg="white").place(x=10, y=10)
没有任何反应,因为在屏幕上没有标签,并且没有错误发生。 然而,当我的代码更改为:
Label(frame,text="hello", height=1, width=14, bg="white")
Label.place(x=10, y=10)
我得到的错误:
TypeError: place_configure() missing 1 required positional argument: 'self'
为什么我不是一个标签放置到机架,以及如何解决这个问题? 谢谢
答
你不应该在课上呼叫place
(Label
)。如果您想这样做,您必须将Label
实例分配给某个变量,然后在该变量上调用place
。它适用于第一种情况,因为您在类实例上调用place
,而不是类本身。 例如,它应该怎么做:
label_name = Label(frame,text="hello", height=1, width=14, bg="white")
label_name.place(x=10, y=10)
他们不调用类'place'。他们在一个实例上调用它。 –
'Label.place(x = 10,y = 10)'这个确实看起来像是在一个类中调用它。这个标签(frame,text =“hello”,height = 1,width = 14,bg =“white”)。place(x = 10,y = 10)'在另一方面调用它,这正在按预期工作。 – Fejs
好的,你是对的。我很抱歉。在一个地方,他们做错了,在一个地方他们做对了。这回答标题中的问题。 –