我希望显示包含多个小部件的框架的边框,但是尽管设置了边框宽度并且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()
答案 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)