首页 > 解决方案 > 填充未显示在 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()

标签: pythontkinter

解决方案


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)

谢谢


推荐阅读