【问题标题】:How do I align PanedWindows in Tkinter?如何在 Tkinter 中对齐 PanedWindows?
【发布时间】:2013-03-01 22:54:55
【问题描述】:

我是 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)

【问题讨论】:

    标签: python python-2.7 tkinter


    【解决方案1】:

    只需使用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)
    # ...
    

    【讨论】:

    • 我试了一下,但没有发现任何变化。文本和框保持在同一位置。
    • 首先你必须删除你的PanedWindow 对象,并将顶层设置为小部件的父级。
    • 这就像一个魅力,非常感谢,我很感激。
    • @Phatso727 不客气。如果它解决了您的问题,请随时接受答案。
    猜你喜欢
    • 2017-08-31
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 2021-10-22
    • 1970-01-01
    • 2015-09-17
    相关资源
    最近更新 更多