在我的程序中添加帧有点困难

2024-03-29 14:55:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图改变我的程序布局,但我很难添加框架,并将小部件转换成这些框架。部分原因是我还没有完全理解下面编写的代码。我已经用*从框架的角度指出了我需要帮助理解的部分。你知道吗

我遇到的问题是,我想把我的屏幕分割成半宽的方式,这样窗口的上半部分显示为红色,下半部分显示为蓝色。为了做到这一点,我已经包装的一面,作为顶部和底部分别;然而,他们之间有空白。我怎样才能去掉这个?你知道吗

谢谢你

class The99club (Tk):

    def __init__ (self, *args, **kwargs):

        Tk.__init__(self,*args,**kwargs)
        Tk.title(self, 'The 99 Club')

        container = Frame(self)

        container.grid(row = 0, column = 0, sticky='nsew')*
        container.grid_rowconfigure (2,weight = 1)*
        container.grid_columnconfigure (2,weight = 1)*

        self.frames = {}

        for F in (StartPage,PageOne,PageTwo,PageThree,PageFour,PageFive):

            frame = F (container,self)
            self.frames[F] = frame
            frame.grid(row=0, column = 0, sticky = 'nsew')*


        self.show_frame(StartPage)

    def show_frame (self, cont):

        frame = self.frames[cont]
        frame.tkraise()


class StartPage(Frame):

    def __init__(self, parent, controller):
        Frame.__init__(self, parent)
        self.controller = controller
        self.top_frame = Frame(self, bg = 'red')
        self.top_frame.pack(side = TOP, fill= X)
        self.bottom_frame = Frame (self, bg = 'blue')
        self.bottom_frame.pack(side = BOTTOM, fill = X)

        label = Label(self.top_frame, text = 'Welcome to The 99 Club', bg = '#66B132',fg='yellow', font = ('Agent Red',30))
        label.pack()

        label2 = Label(self.top_frame, text = 'Press Enter to begin.',bg = '#66B132',fg='yellow',font = ('Comic Sans MS',24))
        label2.pack()
        self.button = Button(self, text = 'Enter',bg = 'yellow',command=lambda: controller.show_frame(PageOne),font = ('Comic Sans MS', 24),relief = SUNKEN)
        self.button.pack()

Tags: self框架framesinitcontainertopdefframe
1条回答
网友
1楼 · 发布于 2024-03-29 14:55:39

基本上,你可能没有意识到,但空白实际上是你的框架的边界。要删除它,必须在帧的参数中设置borderwidth=0和highlightthickness=0。所以,它看起来像:

self.top_frame = Frame(self, bg = 'red', borderwidth=0, highlightthickness=0)

如果不行就告诉我。你知道吗

相关问题 更多 >