【问题标题】:TKinter: lost alignment between frame and rootTKinter:框架和根之间失去对齐
【发布时间】:2017-12-22 06:03:21
【问题描述】:

我遇到了一个奇怪的问题。我有一个小网格(8 行,5 列)。根与几个框架。大多数运行良好。顶行的四个字段(在我的例子中是 1,我不使用 0)有一个文本,并且必须连续具有相同的颜色。我无法在根本身中意识到这一点,所以我制作了一个带有标签的框架(text="")。除了所有文本都在左侧连接并且不再位于下方网格字段上方的事实之外,这提供了所需的外观。 代码非常简单,但我希望它无论如何都会被请求,所以这里是相关部分:

# Top frame
top_frame=LabelFrame(root, text= "", bg=top_line_color)
top_frame.grid(row =1, column=0, sticky=W+E, columnspan=5)

# Fixed labels:
Label(top_frame, text="Anten", font=fnt, bg=top_line_color).grid(row=1, 
column=0)
Label(top_frame, text="Antenna", font=fnt, bg=top_line_color).grid(row=1, 
column=1)
Label(top_frame, text="Corr.", font=fnt, width=4, 
bg=top_line_color).grid(row=1, column=3)
Label(top_frame, text="Move", font=fnt, width=4, 
bg=top_line_color).grid(row=1, sticky=W, column=4)
Label(root, text="Azimuth:", justify=RIGHT, font=fnt).grid(row=2, sticky=W)
Label(root, text="Elevation:", justify=RIGHT, font=fnt).grid(row=3, 
sticky=W) 
Label(root, text="Location:",justify=RIGHT, font=fnt).grid(row=4, sticky=W)
Label(root, text=acemedat.myloc, font=fnt).grid(row=4, column=1)
Label(root, text="Dat/Tim:", justify=RIGHT, font=fnt).grid(row=4, column=2) 
Label(root, text="Moon distance (km):", font=fnt).grid(row=5, columnspan=2, 
sticky=W)

标签后面是数据字段(在根中也是如此)。他们毫无问题地遵守电网。 我该怎么做才能将框架字段与根字段对齐? 提前谢谢了, 哈克

【问题讨论】:

    标签: python tkinter grid alignment


    【解决方案1】:

    如果您希望所有内容都排列在一个网格中,最简单的解决方案是将它们全部放在同一个框架中。如果您对固定标签使用sticky 属性,您可以拥有纯色、完整的颜色。根据您的系统,您可能需要更改标签以使borderwidth 和/或highlightthickness 为零。如果您希望标签左对齐,可以使用标签的anchor 属性来实现。

    例如:

    from tkinter import *
    
    root = Tk()
    
    fnt = ("Helvetica", "12")
    top_line_color = "bisque"
    
    # Fixed labels:
    Label(root, text="Anten", font=fnt, bg=top_line_color,
          anchor="w").grid(row=0, column=0, sticky="nsew")
    Label(root, text="Antenna", font=fnt, bg=top_line_color,
          anchor="w").grid(row=0, column=1, sticky="nsew")
    Label(root, text="Corr.", font=fnt, width=4, bg=top_line_color,
          anchor="w").grid(row=0, column=2, sticky="nsew")
    Label(root, text="Move", font=fnt, width=4, bg=top_line_color,
          anchor="w").grid(row=0, column=3, sticky="nsew")
    
    Label(root, text="Azimuth:", justify=RIGHT, font=fnt).grid(row=2, sticky=W)
    Label(root, text="Elevation:", justify=RIGHT, font=fnt).grid(row=3,  sticky=W) 
    Label(root, text="Location:",justify=RIGHT, font=fnt).grid(row=4, sticky=W)
    Label(root, text="acemedat.myloc", font=fnt).grid(row=4, column=1)
    Label(root, text="Dat/Tim:", justify=RIGHT, font=fnt).grid(row=4, column=2) 
    Label(root, text="Moon distance (km):", font=fnt).grid(row=5, columnspan=2, sticky=W)
    
    root.mainloop()
    

    【讨论】:

    • 好的,非常感谢。我有一些思考和实验的食物。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2011-05-10
    相关资源
    最近更新 更多