笔记本小部件-小部件之间的空间

时间:2020-07-05 19:48:05

标签: python python-3.x tkinter ttkwidgets

我正在尝试在笔记本顶部面板和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)

但是没有任何变化。.笔记本面板和框架粘在一起..为什么这里的稻草没有冲击? (例如,..我出于同样的原因添加了main_frame以便在窗口和笔记本之间留出空间...将所有笔记本略微向下推)

enter image description here

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()

2 个答案:

答案 0 :(得分:1)

因为要将框架添加到笔记本中。对于这些帧,调用grid的结果将被忽略。

add方法接受一个padding选项,该选项可以具有1-4个值。根据官方文档:

填充是最多四个长度规格的列表, 底部。如果指定的元素少于四个,则bottom默认为top,right默认为left,top默认为left。

因此,要仅在顶部添加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))

screenshot with 20px padding>为什么这里的稻田不受影响?

答案 1 :(得分:-1)

这是1个标签的代码。我正在使用框架来增加间距。

import tkinter
import tkinter.ttk
from tkinter import *

window = tkinter.Tk()

tabControl = ttk.Notebook(window)

tab1 = ttk.Frame(tabControl)
tabControl.add(tab1, text='tab1')

Frame_1 = Frame(tab1, pady=8)
Frame_1.grid(row=1,column=0)


lb0 = Label(Frame_1, text= "Hello world")
lb0.grid(row=0, column=0)


tabControl.grid(row=0, column=0)

window.mainloop()