0
votes

I'm tring to write a program in python3 using the tkinter module. I've created a canvas widget with a y scrollbar, but as I try to add a button in the canvas and scroll the region, the button doesn't move. Here is the code:

# defining the tool bar
class toolBar(object):

    def __init__(self, master):
        ''' creates the toolbar object '''

        self.master = master

        # creating the toolbarobject
        self.toolbar = tk.Canvas(self.master, width=70, height=200, bg="lightgrey")
        self.toolbar.grid(row=0, column=1, sticky="nwes", rowspan=2)
        self.toolbar.configure(scrollregion=(0, 0, 0, 2000))

        b1 = tk.Button(self.toolbar, text="Try")
        b1.grid()

        # creating the y scrollling
        self.scroll_y = tk.Scrollbar(self.parent.master, orient="vertical", command=self.toolbar.yview)
        self.scroll_y.grid(row=0, column=0, sticky="ns", rowspan=2)

        self.toolbar.configure(yscrollcommand=self.scroll_y.set)

where the master is a tk.Tk() object passed to the class. Do you have any solution for this issue?

P.S.: I have another question: when I run my program, the canvas that contains the button fits the button width, is it possible to place the button whitout changing the canvas width?

1

1 Answers

0
votes

The canvas can't scroll items added with pack, place, or grid. It will only scroll widgets added with the create_window method.