python - 笔记本小部件 - 小部件之间的空间
问题描述
我正在尝试在笔记本顶部面板和 frame0\frame1\frame2 之间实现空间,为什么当我使用 pady 时,例如:
frame0.grid(row=0, column=0, pady=5)
frame1.grid(row=0, column=0, pady=5)
frame2.grid(row=0, column=0, pady=5)
但是没有变化..笔记本面板和框架粘在一起..为什么这里的pad不影响?(例如..我出于同样的原因添加了 main_frame 以获得窗口和笔记本之间的空间......将所有笔记本向下推)
import tkinter
import tkinter.ttk
window = tkinter.Tk()
main_frame = tkinter.ttk.Frame(window)
nb = tkinter.ttk.Notebook(main_frame)
frame0 = tkinter.ttk.Frame(nb)
frame1 = tkinter.ttk.Frame(nb)
frame2 = tkinter.ttk.Frame(nb)
lb0 = tkinter.ttk.Label(frame0, text= "Hello world")
lb1 = tkinter.ttk.Label(frame1, text= "One Two Three")
lb2 = tkinter.ttk.Label(frame2, text= "Test")
lb0.grid(row=0, column=0)
lb1.grid(row=1, column=0)
lb2.grid(row=2, column=0)
frame0.grid(row=0, column=0)
frame1.grid(row=0, column=0)
frame2.grid(row=0, column=0)
nb.add(frame0, text="tab0")
nb.add(frame1, text="tab1")
nb.add(frame2, text="tab2")
nb.grid(row=0, column=0)
main_frame.grid(row=0, column=0,pady=5)
window.mainloop()
解决方案
因为您要将框架添加到笔记本中。这些帧的调用结果grid
将被忽略。
该add
方法接受padding
可以具有一到四个值的选项。来自官方文档:
padding 是一个最多四个长度规格的列表left top right bottom。如果指定的元素少于四个,则底部默认为顶部,右侧默认为左侧,顶部默认为左侧。
因此,要仅在顶部添加 20 像素的填充,您可以这样做:
nb.add(frame0, text="tab0", padding=(0, 20, 0, 0))
nb.add(frame1, text="tab1", padding=(0, 20, 0, 0))
nb.add(frame2, text="tab2", padding=(0, 20, 0, 0))
推荐阅读
- java - 如何在 Java 中暂停和恢复线程?
- chart.js - chart.js 和时间戳作为可读日期
- php - PHP函数从未分隔的编码值字符串创建图表
- python - 使用 argparser 将参数传递给入口点 python 脚本
- c# - 如何确定 EF Core 中是否拥有 ClrType?
- python - 为什么 pandas.core.series.Series 有时无法在 Python 中转换为火炬张量?
- java - 从 api 数组或矩阵 java android studio 中提取 json 数据
- c - 如何检查虚拟地址属于用户数据空间还是用户代码空间?
- elasticsearch - 无法在 Kibana 中检索包含特定符号的数据
- javascript - Error of "Cannot use 'in' operator to search for '0'", which doesn't occur on localhost