Brandon Sturgeon
Brandon Sturgeon

Reputation: 223

How do I align PanedWindows in Tkinter?

I'm new to Tkinter, and finding it a bit rough to get the hang of it. The point of this piece of code is to calculate time using the equation (Time = (Velocity - Initial Velocity) / Acceleration) But I need to take user input for the variables.

Here's what I have so far. It would be great, except for the fact that the labels don't line up with the text widgets. Is there any easy way to do what I need?

    def timF():
        timPanel = Toplevel()
        timPanel.wm_title("Time")

        timCont = PanedWindow(timPanel, orient=VERTICAL)
        timCont.pack(fill=BOTH, expand=1)

        # Top Paned Window and contents #
        timTopCont = PanedWindow(timCont, orient=HORIZONTAL)
        timCont.add(timTopCont)

        # Velocity label
        timFVelL = Label(timTopCont, text="Velocity")
        timTopCont.add(timFVelL)

        # Initial Velocity label
        timFiveL = Label(timTopCont, text="Initial Velocity")
        timTopCont.add(timFiveL)

        # Acceleration label
        timFaccL = Label(timTopCont, text="Acceleration")
        timTopCont.add(timFaccL)


        # Bottom Paned Window and contents #
        timBotCont = PanedWindow(timCont, orient=HORIZONTAL)
        timCont.add(timBotCont)

        # Velocity entry
        timFVelE = Entry(timBotCont)

        timBotCont.add(timFVelE)
        # Initial Velocity entry
        timFiveE = Entry(timBotCont)

        timBotCont.add(timFiveE)
        # Acceleration entry
        timFAccE = Entry(timBotCont)

        timBotCont.add(timFAccE)

Upvotes: 0

Views: 971

Answers (1)

A. Rodas
A. Rodas

Reputation: 20689

Just use grid() to place the widgets, instead of pack(). It is the easiest way to do so if you know the concrete row and column of the layout you want to place each widget:

timFVelL.grid(row=0, column=0)
timFVelE.grid(row=0, column=1)
timFiveL.grid(row=1, column=0)
timFiveE.grid(row=1, column=1)
# ...

Upvotes: 3

Related Questions