Tkinter 网格系统不起作用

0 投票
1 回答
544 浏览
提问于 2025-04-18 13:57

我有一段代码,应该是可以正常工作的,但不知道为什么 actionFrame 和 infoFrame 被放在了一起,互相叠在下面...

from tkinter import *

root = Tk()
root.title("TNT Manager")

root.configure(background='grey')
root.grid_rowconfigure(0,weight=1)
root.grid_columnconfigure(0,weight=1)

plannerFrame = Frame(root, bg='grey')
plannerFrame.grid(row=0, column=0, sticky='NSEW')

plannerFrame.grid_rowconfigure(0, weight=15)
plannerFrame.grid_rowconfigure(1, weight=1)
plannerFrame.grid_columnconfigure(0, weight=5)
plannerFrame.grid_columnconfigure(1, weight=2)

actionFrame = Frame(plannerFrame, width=500, height=400)
actionFrame.grid_propagate(0)
actionFrame.grid(row=0, column=0, sticky="NSEW", padx=1,pady=1)

infoFrameWid(actionFrame) #for now just adds text widget inside frame

infoFrame = Frame(plannerFrame, width=200, height=400)
infoFrame.grid_propagate(0)
infoFrame.grid(row=0, column=1, sticky="NSEW", padx=1, pady=1)

infoFrameWid(infoFrame)

saveFrame = Frame(plannerFrame)
infoFrame.grid(row=1, column=0, padx=1, pady=1)

我遇到的问题是,infoFrame 这个小部件在 actionFrame 这个小部件的上面。它们本来应该在同一行。如果把 saveFrame 这个小部件去掉,它就能正常显示了。

在这里输入图片描述

1 个回答

0

你需要在最后进行更改

saveFrame = Frame(plannerFrame)
infoFrame.grid(row=1, column=0, padx=1, pady=1)

改成

    saveFrame = Frame(plannerFrame,width=700, height=400)
    saveFrame.grid(row=1, column=0, padx=1, pady=1)

撰写回答