添加标签后,滚动条在tkinter canvas小部件中不起作用

时间:2018-06-05 22:43:33

标签: python tkinter

我疯狂地将广告贴在画布上的应用程序。我还设置了垂直滚动条。问题是我无法激活滚动条,滚动条不允许滚动。 我使用过grid_propagate(0)但它仍然不起作用。你想激活这个功能吗? 该程序没有显示任何错误。

from tkinter import *

root=Tk()
frame=Frame(root,width=300,height=300)
frame.grid(row=0,column=0)
frame.grid_propagate(0)

canvas=Canvas(frame,width=300,height=300)

vbar=Scrollbar(frame,orient=VERTICAL)
vbar.grid(row=0, column=1,sticky="NS")
vbar.config(command=canvas.yview)

canvas.config(width=300,height=300)
canvas.config(yscrollcommand=vbar.set)
canvas.grid(row=0,column=0)

n=0
m=10
def novi():
    global n
    global m

    n +=1

    m=m+2

    e = Label(canvas, text=m )
    e.grid(row=n,column=0, padx=10, pady=10)

b = Button(root, text="add", command=novi)
b.grid(row=0, column=2,sticky="N")

root.mainloop()

1 个答案:

答案 0 :(得分:0)

您可以尝试执行以下操作:

  1. 指示画布的滚动区域,例如:

      

    canvas.config(scrollregion =(0,0,940,1200))

  2. 指示将小部件放在画布中的位置  代码类似于:

      

    canvas.create_window(x,y,window = here_goes_your_widget)

    在此示例中,“ x”和“ y”是坐标。


据我所知,您必须手动指示要放在画布中的小部件的位置。

好吧,我希望这对您有所帮助。 Hasta lapróxima,che!