tkinter框架边框不显示

时间:2014-11-05 10:03:45

标签: python tkinter

我希望显示包含多个小部件的框架的边框,但是尽管设置了边框宽度并且SUNKEN值为浮雕,但没有边框显示

它在一个空框架上工作得非常好,所以我猜它不能用带有孩子的框架,这是正确的吗?

我怎么能这样做?或者至少在我的界面的两个区域之间引入分离

测试代码:

import tkinter as Tk

class Application(Tk.Frame):

    def __init__(self, **kwargs):
        #Create window
        self.root = Tk.Tk()

        #Init master frame
        Tk.Frame.__init__(self,self.root,width=640, height=480)
        self.grid()

        #Frame
        self.frame_com_ports = COM_Frame(self,borderwidth=5,relief=Tk.GROOVE)
        self.frame_com_ports.grid(column=0,row=0,sticky='EW')

        #Some other frames here...

class COM_Frame(Tk.Frame):
    def __init__(self,parent, **kwargs):
        Tk.Frame.__init__(self,parent)

        #Widgets
        self.txt_ports = Tk.Label(self,text="WIDGET1")
        self.txt_ports.grid(column=0,row=0,sticky='EW',pady=3,padx=3)

        self.txt_ports = Tk.Label(self,text="WIDGET2")
        self.txt_ports.grid(column=0,row=1,sticky='EW',pady=3,padx=3)

if __name__ == "__main__":
    app = Application()
    app.mainloop()

3 个答案:

答案 0 :(得分:4)

您正在将borderwidth和relief传递给COM_Frame构造函数,但在调用Frame构造函数时您没有使用这些值。你需要改变这个:

Tk.Frame.__init__(self,parent)

......对此:

Tk.Frame.__init__(self,parent, **kwargs)

答案 1 :(得分:3)

框架的默认浮雕是tk.FLAT,这意味着框架将与周围环境融为一体。要在框架周围放置边框,请将其borderwidth设置为正值,并将其浮雕设置为其中一种标准浮雕类型。

答案 2 :(得分:0)

my_frame.config(bd=1, relief=tkinter.SOLID)