【发布时间】:2021-01-31 12:53:45
【问题描述】:
我想在窗口左侧有一个宽度为 320 的框架,其中有一个画布,我必须在其中显示来自文件的数据。 该画布上将有许多小部件(数据),因此我还想在其中使用滚动条。 当我使用 pack() 时,窗口上没有显示任何内容 - 甚至 bg="sky blue" 的框架也不可见。请告诉我有什么问题。我已经尝试了 fill=BOTH、expand=True 等的所有组合。但是,我无法做出我想要的。
root = Tk()
root.state('zoomed') #zooms the screen to maxm whenever executed
root.geometry('550x650')
root.minsize(550,650)
#Frame inside root
ContactDetails_frame = Frame(root,width=320,bg='sky blue',bd=2, relief=RIDGE)
ContactDetails_frame.pack(side=LEFT,fill=BOTH)
#Canvas inside the frame
canvas = Canvas(ContactDetails_frame,width=320,bg='sky blue',scrollregion=(30,0,1000,1000))
canvas.pack(fill=BOTH,expand=True)
#Vertical scrollbar for canvas
scrollbar = Scrollbar(canvas,orient=VERTICAL)
scrollbar.pack(side=RIGHT,fill=Y,expand=True)
#Attach scrollbar to canvas
canvas.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=canvas.yview)
#Here are the widgets
FirstName = Label(canvas, text="First name: ", font=(12),bg='sky blue',fg='black')
canvas.create_window(10,175, window=FirstName)
MiddleName = Label(canvas, text="Middle name: ",font=(12),bg='sky blue',fg='black')
canvas.create_window(10,195, window=MiddleName)
LastName = Label(canvas, text="Last name: ",font=(12),bg='sky blue',fg='black')
canvas.create_window(10,215, window=LastName)
NickName = Label(canvas, text="Nick name: ",font=(12),bg='sky blue',fg='black')
canvas.create_window(10,235, window=NickName)
Note = Label(canvas, text="Note: ",font=(12),bg='sky blue',fg='black')
canvas.create_window(10,855, window=Note)
root.mainloop()
【问题讨论】:
-
尝试将滚动条的父级更改为
ContactDetails_frame。
标签: python user-interface tkinter canvas frame