考虑这个简单的代码:
from Tkinter import *
import ttk
root= Tk()
ttk.Label(root, text='Heading Here').grid(row=1, column=1)
ttk.Separator(root,orient=HORIZONTAL).grid(row=2, columnspan=5)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,分隔符几乎不可见.

我用红色箭头标记它,如果你能看到它是一个小点类的东西.
如何使分隔符跨越整个水平宽度,或者至少可见?
Bry*_*ley 27
分隔符的自然宽度为1像素.你告诉它保留五列的空间,但是你没有要求分隔符实际填充这五列.要解决这个问题,请提供sticky属性,该属性显示"如果此窗口小部件的空间超出需要的空间,则使窗口小部件的边缘"粘贴到其容器的特定边".
在这种情况下,您希望分隔符粘贴到其容器的左右边缘.粘性属性使用指南针的值作为值,因此您希望"e"表示东方,"w"表示西方:
ttk.Separator(...).grid(..., sticky="ew")
Run Code Online (Sandbox Code Playgroud)
@Bryan 的sticky解决方案很好,但它只能解决部分情况,因为分隔符不会覆盖整个水平宽度(您要求的)。这是您可以应用的替代解决方案:代替.grid(),使用place()布局并完全控制分隔符的位置、宽度(长度)甚至高度。要将其应用于当前案例(没有任何额外功能)并覆盖整个水平宽度,只需:
代替
ttk.Separator(root,orient=HORIZONTAL).grid(row=2, columnspan=5)
Run Code Online (Sandbox Code Playgroud)
和
ttk.Separator(root).place(x=0, y=26, relwidth=1)
Run Code Online (Sandbox Code Playgroud)
您可以根据需要设置“y”。另请注意,这orient=HORIZONTAL是不需要的,因为它是默认选项。(查看http://effbot.org/tkinterbook/place.htm以获取使用 `.option()' 布局的详细信息和示例。)
| 归档时间: |
|
| 查看次数: |
23530 次 |
| 最近记录: |