【问题标题】:Tkinter button distance from window edgesTkinter 按钮距窗口边缘的距离
【发布时间】:2016-05-14 19:58:30
【问题描述】:

有没有办法使用 Tkinter 来设置按钮,以便它们始终放置在距窗口边缘一定数量的像素处,即使窗口已调整大小?我尝试过使用锚点,但这似乎并没有使窗口中的位置移动太多。

【问题讨论】:

    标签: python python-2.7 tkinter


    【解决方案1】:

    您可以将按钮或任何其他小部件锚定到窗口的两侧,方法是从 Frame 开始,并将其行和列配置为具有 1 的权重让它填满父窗口。

    import Tkinter as tk
    import ttk
    
    root = tk.Tk()
    
    frame = ttk.Frame(root)
    frame.pack(fill=tk.BOTH, expand=True)
    frame.columnconfigure(index=0, weight=1)
    frame.columnconfigure(index=2, weight=1)
    frame.rowconfigure(index=0, weight=1)
    frame.rowconfigure(index=2, weight=1)
    

    然后,对于每个要使用 sticky 将其锚定到相应侧的按钮,并使用 padxpady 添加一些按钮和窗口之间的填充(以像素为单位)。

    top_padding = 5
    top = ttk.Button(frame, text="Top")
    top.grid(row=0, column=1, sticky=tk.N, pady=(top_padding, 0))
    
    left_padding = 5
    left = ttk.Button(frame, text="Left")
    left.grid(row=1, column=0, sticky=tk.W, padx=(left_padding, 0))
    
    right_padding = 5
    right = ttk.Button(frame, text="Right")
    right.grid(row=1, column=2, sticky=tk.E, padx=(0, right_padding))
    
    bottom_padding = 5
    bottom = ttk.Button(frame, text="Bottom")
    bottom.grid(row=2, column=1, sticky=tk.S, pady=(0, bottom_padding))
    
    root.mainloop()
    

    【讨论】:

    • 我明天早上得试试这个,但看起来它会解决问题!
    【解决方案2】:

    您是否尝试过使用padx 函数? 它是这样工作的:

    button=Button(place,text="something something", padx=10)
    

    它在小部件之间提供额外的水平填充,此外,您可以将frames 与 padx 和锚点一起使用,以便将文本固定到某个位置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多