Tkinter滚动条不起作用:使用网格显示数据框

时间:2019-02-21 00:35:06

标签: python pandas tkinter scrollbar

我正在尝试在可滚动的tkinter网格中显示熊猫数据框,但是滚动条不起作用。下面是我的代码。

root = Tk()
canvas = Canvas(root, borderwidth=0)

vbar=Scrollbar(root,orient=VERTICAL)
vbar.pack(side=RIGHT, fill=Y)
vbar.config(command=canvas.yview)

hbar=Scrollbar(root,orient=HORIZONTAL)
hbar.pack(side=BOTTOM, fill=X)
hbar.config(command=canvas.xview)
canvas.config(xscrollcommand=hbar.set)
canvas.config(yscrollcommand=vbar.set)   
canvas.pack(side="left", fill="both", expand=True)

frame = Frame(canvas)
frame.pack(side=TOP)
canvas.create_window(0,0,anchor='nw',height=300,width=300,window=frame)

for r in range(df.shape[0]-20):
    for c in range(df.shape[1]):
        Label(canvas, text=str(df.iloc[r,c]), borderwidth=1).grid(column=c*2, row=r*2)
        #tkinter.ttk.Separator(frame, orient=HORIZONTAL).grid(column=c*2, row=r*2+1, sticky='ew')
        #tkinter.ttk.Separator(frame, orient=VERTICAL).grid(column=c*2+1, row=r*2, sticky='ns')


root.mainloop()

“ df”是熊猫数据框。当我运行此代码时,数据显示在窗口中,但滚动条是不与窗口交互的固定项目。另外,当我取消对// ed行的注释时,该代码似乎可以永远运行,这使我认为这些行需要花费大量时间。

0 个答案:

没有答案