Tkinter ttk 框架的填充

时间:2021-06-07 17:27:10

标签: python tkinter

我尝试制作一个基本的 tkinter ttk 程序,但框架之间的填充消失了。我正在使用网格,它应该(可能)导致了问题。我是初学者,我需要帮助。代码如下:

from tkinter import *
from tkinter import ttk

def donothing():
    print("i see")

root = Tk()
root.title("Application")
root.geometry("1000x1000")

s=ttk.Style()
s.configure('TFrame', background='gray')
s.configure('windowframes.TFrame', background='darkgray')

mainframe = ttk.Frame(root, padding="5 5 5 5",height=300)
mainframe.grid(column=0, row=0, sticky=(N,E,S,W))


menu = Menu(root)
root.config(menu=menu)
filemenu = Menu(menu,tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)

filemenu.add_separator()

filemenu.add_command(label="Exit", command=root.quit)
menu.add_cascade(label="File", menu=filemenu)

toolframe = ttk.Frame(mainframe,padding="5 5 5 5",height=40,style='windowframes.TFrame')
toolframe.grid(column=0, row=0, sticky=(N,E,W))
mainframe.columnconfigure(0,weight=2)

hierarchyframe = ttk.Frame(mainframe,padding="5 5 5 5",width=300,style='windowframes.TFrame')
hierarchyframe.grid(column=0, row=1, sticky=(S,W,N))
mainframe.rowconfigure(1,weight=1)

root.columnconfigure(0,weight=1)
root.rowconfigure(0,weight=1)

root.mainloop()

1 个答案:

答案 0 :(得分:0)

acw1668 是对的,只需将其从制作 Frame 并将填充放在那里进行更改,而不是将其放在 .grid 函数中,如

hierarchyframe = ttk.Frame(mainframe,width=300,style='windowframes.TFrame')
hierarchyframe.grid(column=0, row=1, sticky=(S,W,N), padx=2, pady=2)

谢谢

相关问题