關於我的tkinter畫布上滾動條位置的問題。我有一個3個畫布小部件的框架。禮貌to this post的想法。我添加了一個水平滾動條,每個畫布有一個50 +列500+行熊貓數據框。負載不是很快,但這不是一個目標。tkinter將滾動條放在畫布上的底部位置
新行將被添加到每個數據框的底部。這個新行需要驗證。因此,如果滾動條或畫布顯示底部部分,而不是每次都向下滾動,則會很好。
請參閱下面的代碼,其中定義了3x畫布和3x滾動條(x + y)。
def createBox(window):
list_ = ['df1', 'df2', 'df3'] # 3 dataframes
for i in range(3):
mybox = LabelFrame(window, padx=5, pady=4)
mybox.grid(row=i, column=0)
createWindow(mybox, list_[i], i)
def createWindow(box, lt_actual, i):
canvas = Canvas(box, borderwidth=0)
frame = Frame(canvas)
vsbY = Scrollbar(box, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsbY.set, width=1200, heigh=200)
vsbY.pack(side="right", fill="y")
vsbX = Scrollbar(box, orient="horizontal", command=canvas.xview)
canvas.configure(xscrollcommand=vsbX.set, width=1200, heigh=200)
vsbX.pack(side="bottom", fill="x")
#canvas.yview_moveto(1) - no effect
#canvas.yview_moveto(1.0) - no effect
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw", tags="frame")
# be sure that we call OnFrameConfigure on the right canvas
frame.bind("<Configure>", lambda event, canvas=canvas: OnFrameConfigure(canvas))
我讀了這個論壇,並就一些info (effbot) pages,我應該使用moveTo()/ yview_moveto()命令選項,但到目前爲止,這似乎並沒有工作。
問題1.我應該將y滾動條放到底部還是應該將畫布視圖放到底部。
問題2.你能提供一些關於如何使用moveto的指導,或者我應該採用不同的方法嗎?
非常感謝!
@ l_4321謝謝。這確實是一個工作的例子。稍後會檢查我的代碼有什麼問題。但我會對我的錯誤提供反饋。日Thnx。 –