如何在Tkinter中对齐PanedWindows?

时间:2013-03-01 22:54:56

标签: python python-2.7 tkinter

我是Tkinter的新手,并且发现它有点粗糙。这段代码的要点是使用公式计算时间(时间=(速度 - 初始速度)/加速度)但我需要为变量获取用户输入。

这是我到目前为止所拥有的。它会很棒,除了标签不与文本小部件对齐的事实。有什么简单的方法可以做我需要的吗?

    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)

1 个答案:

答案 0 :(得分:3)

只需使用grid()放置小部件,而不是pack()。如果您知道要放置每个小部件的布局的具体行和列,这是最简单的方法:

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