在python中设置多标签框架的位置

时间:2016-07-11 08:51:42

标签: python user-interface tkinter grid

我正在使用网格管理器在行和列中设置我的每个标签框架,在我的代码运行之后,中间2帧不会出现在我的编码中设置的内容。如何确保中间2帧出现在我的计划中,问候。

Screenshot

from tkinter import *

class ConfigureUAinterface(Frame):
    def __init__(self, master):
        root.minsize(width=700, height=520)
        root.maxsize(width=700, height=520)
        Frame.__init__(self, master)
        Grid.config(self)
        #FramePackA:Configuration UA
        self.framepackA =     LabelFrame(master,width=200,height=520,background='red')
        self.framepackA.grid(row=0,column=0,rowspan=1)
        self.framepackA.grid_propagate(0)
        #FramePackB:DateSelection
        self.framepackB = LabelFrame(master,width=260,height=198,background='grey')
        self.framepackB.grid(row=1,column=1)

        self.framepackB.grid_propagate(0)
        #FramePackC:Final Step
        self.framepackC = LabelFrame(master,width=260,height=322,background='light blue')
        self.framepackC.grid(row=2,column=1)
        self.framepackC.grid_propagate(0)

        #FramePackD:Case Suggestion for UA
        self.framepackD = LabelFrame(master,width=240,height=520,background='dark violet')
        self.framepackD.grid(row=0,column=2)
        self.framepackC.grid_propagate(0)
root = Tk()
root.title("UA Configuration")
cuai= ConfigureUAinterface(root)

root.mainloop()

1 个答案:

答案 0 :(得分:1)

在init的前两行中,将maxheight设置为520。

您的第一行元素(A,D)的高度为520。

第二行元素(B)无法显示,因为它超出了帧限制。

第三行元素(D)不受self.framepackC.grid_propagate(0)的影响。

建议

使用grid_propagate(0)没有错,但grid_propagate(False)会更具可读性。

将max_size增加到height = 1020将使它们可见。