滚动条无法按预期工作

时间:2018-07-25 03:57:20

标签: python button canvas tkinter scrollbar

我是python GUI的新手, 我试图在画布上放置一些按钮,但是当我使用place方法时,按钮不存在并且滚动条不起作用,当我删除注释时,place方法中的滚动条正常工作。有关其为何无法正常工作的任何帮助..

from tkinter import *
def newbutton():
    b = Button(frm, text='Button n', width=40)
    b.pack()

root = Tk()
## Grid sizing behavior in window
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
## Canvas
cnv = Canvas(root)
cnv.grid(row=0, column=0, sticky='nswe')
## Scrollbars for canvas
hScroll = Scrollbar(root, orient=HORIZONTAL, command=cnv.xview)
hScroll.grid(row=1, column=0, sticky='we')
vScroll = Scrollbar(root, orient=VERTICAL, command=cnv.yview)
vScroll.grid(row=0, column=1, sticky='ns')
cnv.configure(xscrollcommand=hScroll.set, yscrollcommand=vScroll.set)

## Frame in canvas
frm = Frame(cnv)
## This puts the frame in the canvas's scrollable zone
cnv.create_window(0, 0, window=frm, anchor='nw')
## Frame contents


for i in range(100):
    b = Button(frm, text='Button n#%s' % i, width=40,command=lambda :newbutton())
    b.pack()
    b.place(x=0,y=30*i)

## Update display to get correct dimensions
frm.update_idletasks()
## Configure size of canvas's scrollable zone
cnv.configure(scrollregion=(0, 0, frm.winfo_width(), frm.winfo_height()))
## Go!
root.mainloop()

0 个答案:

没有答案