我正在尝试在项目中使用滚动条。我有代码在画布内,在框架内创建一个框架,以便将标签放到框架上,然后滚动浏览。这是一些代码:
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() 当我将标签代码更改为:
时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'
为什么我不能在框架中放置标签,我该如何解决这个问题? 感谢
答案 0 :(得分:-1)
您不应该在课程(place
)上致电Label
。如果您想这样做,您必须将Label
实例分配给某个变量,然后在该变量上调用place
。它适用于第一种情况,因为您在类实例上调用place
,而不是类本身。
示例如何完成:
label_name = Label(frame,text="hello", height=1, width=14, bg="white")
label_name.place(x=10, y=10)