我想把這個帶滾動條的框架(參考所提供的圖片)放在所提供的圖片中的黑色空間里。我怎樣才能做到這一點。該框架應該完全覆寫黑色空間。
程式的代碼。
程式的代碼。圖片
from tkinter import *
from tkinter import ttk
C = Tk()
C.maxsize(1200, 750)
C.geometry("1200x750")
C.title("主螢屏")
style = ttk.Style()
style.theme_use('clam')
BG = PhotoImage(file="主螢屏bg.png")
ML = PhotoImage(file="Music_label.png")
BG_label = Label(C, image=BG, border=0)
BG_label.place(x=0, y=0)
style.configure("Vertical.TScrollbar", gripcount=0,
background="Cyan", darkcolor="gray6", lightcolor="LightGreen"。
troughcolor="Turquoise4", bordercolor="gray6", arrowcolor="gray6", arrowsize=15)
wrapper1= LabelFrame(C, width="1600", height="100", background=" gray6",bd=0)
mycanvas = Canvas(wrapper1,background="gray6", borderwidth=0, highlightthickness=0, width=700, height=600)
mycanvas.pack(side=LEFT, expand="false"/span>, padx=0)
yscrollbar = ttk.Scrollbar(wrapper1, orient="vertical", command=mycanvas.yview)
yscrollbar.pack(side=RIGHT, fill="y")
mycanvas.configure(yscrollcommand=yscrollbar.set)
mycanvas.bind('<Configure>',lambda e: mycanvas.configure(scrollregion=mycanvas.bbox("all") )
myframe = Frame(mycanvas)
mycanvas.create_window((0,0), window=myframe, anchor="n" )
wrapper1.pack(side=RIGHT,expand="false", padx=0, pady=200)
for i in range(50)。
Button(myframe, image=ML,bg="gray6",bd=0).pack()
mainloop()
編輯。 Music_Label。 主螢屏bg
uj5u.com熱心網友回復:
因此,在嘗試了解了一段時間的基本問題后,我得出了一個結論,即問題在于按鈕被繪制在myframe中,而myframe在包含滾動條的mycanvas之外。因此,通過將按鈕的主部件從myframe改為mycanvas,問題得到了解決,現在滾動條就在按鈕旁邊。但是,由于在打包wrapper1時,你做了side = RIGHT,所以我也建議你在這里使用place而不是pack,因為pack取決于可用的空間,如果你在GUI中使用Background,并且希望按鈕在其中的一部分,則不可靠。
我修改了以下幾行 -:
Button(mycanvas, image=ML,bg="gray6",bd=0).pack() # Changed to mycanvas from myframe
并且
wrapper1.place(x = {YOUR X, WHERE THE BOX STARTS}, y = {YOUR Y, WHERE THE BOX STARTS}) # Use place instead.
你也可以使用pack,并改變padx和pady引數,但要讓它總是像預期的那樣作業是很困難的。
固定的代碼是這樣的 -:
from tkinter import *
from tkinter import ttk
C = Tk()
C.maxsize(1200, 750)
C.geometry("1200x750")
C.title("主螢屏")
style = ttk.Style()
style.theme_use('clam')
BG = PhotoImage(file="主螢屏bg.png")
ML = PhotoImage(file="Music_label.png")
BG_label = Label(C, image=BG, border=0)
BG_label.place(x=0, y=0)
style.configure("Vertical.TScrollbar", gripcount=0,
background="Cyan", darkcolor="gray6", lightcolor="LightGreen"。
troughcolor="Turquoise4", bordercolor="gray6", arrowcolor="gray6", arrowsize=15)
wrapper1= LabelFrame(C, width="1600", height="100", background=" gray6",bd=0)
mycanvas = Canvas(wrapper1,background="gray6", borderwidth=0, highlightthickness=0, width=700, height=600)
mycanvas.pack(side=LEFT, expand=False, padx=0)
yscrollbar = ttk.Scrollbar(wrapper1, orient="vertical", command=mycanvas.yview)
yscrollbar.pack(side=RIGHT, fill="y", expand = False)
mycanvas.configure(yscrollcommand=yscrollbar.set)
mycanvas.bind('<Configure>',lambda e: mycanvas.configure(scrollregion=mycanvas.bbox("all") )
myframe = Frame(mycanvas)
mycanvas.create_window((0,0), window=myframe, anchor="n" )
wrapper1.pack(expand=True, padx=0, pady=200) # 使用地方代替。
for i in range(50)。
Button(mycanvas, image=ML,bg="gray6",bd=0).pack() # Change this to mycanvas from myframe
mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330597.html
標籤:
