我正在使用標籤來顯示數據。然而,我有這麼多的標籤放置在彼此之下,我不能讓他們都在同一個窗口。我希望使用滾動條滾動標籤。不過,據我所知,這並不是那麼簡單。據我所知,我最好的選擇是使用框架來收集我的所有標籤,然後將框架插入到畫布中,然後可以與滾動條平行使用,儘管我在這方面遇到了麻煩。 ,我使用創建我的標籤功能是如何使用嵌入畫布中的框架內的地方?
def Tab(root, y):
#Print the team
playerTeam = Label(root, bg = "white", text = "Hello")
playerTeam.config(height = 1, width = 13)
playerTeam.place(x=20,y=y)
我試圖用我的功能
def onFrameConfigure(canvas):
'''Reset the scroll region to encompass the inner frame'''
canvas.configure(scrollregion=canvas.bbox("all"))
root = tk.Tk()
root.geometry("400x400")
canvas = tk.Canvas(root, borderwidth=0, background="#ffffff")
frame = tk.Frame(canvas, background="#ffffff")
vsb = tk.Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw")
frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))
Tab(frame, 20)
運行時,產生一個空白窗口中添加以下代碼結合。 但是,當使用.grid代替.place時,在Tab()中它正常工作,並且標籤顯示在窗口上。儘管當我多次調用Tab()時,標籤將從窗口中移出,並且向下滾動的功能不可用。
我怎樣才能讓.place函數正常工作。 其次我怎樣才能讓滾動條正常工作。 謝謝
感謝Bryan,但我確實無法看到網格和包幾何管理器與我的界面設計很好地配合。但是另外,爲什麼滾動條在我給出的例子中不起作用? –
滾動條不起作用,因爲'scrollregion'沒有設置,因爲框架很小。將'scrollregion'設置爲大於畫布的值,並且滾動條將起作用。我敢打賭,幾乎沒有任何界面設計可以滿足,不能使用'pack'或'grid',除了需要用戶能夠交互移動小部件的設計之外。 –
好的謝謝。但是,我可以使用包/網格方法,但是此時我發現很難將標籤放在我想要的位置,而沒有將標籤設置得太緊密。 –