2017-10-17 241 views
0

下面的代碼刪除Tkinter的標籤

from tkinter import * 
window=Tk() 
lbl=Label(window,width='30',height='15',relief='solid') 
lbl.pack() 
window.mainloop() 

產生this

有僅在一側去除邊框的任何方式的邊界?

+1

有沒有,但你可以把你的創建框架與標籤內的框架並使用它來創建邊框。它更先進一些,但可以完成。 –

回答

1

在Q使用的例子/ A here(我會鏈接到它作爲一個重複的問題,但它需要一些tweeking來比較這個OP的問題。)

我們可以創造什麼看起來像一個標籤三面邊界,一面沒有邊界。

from tkinter import * 

class MyLabel(Frame): 
    def __init__(self, parent, myborderwidth=0, mybordercolor=None, 
       myborderplace='center', *args, **kwargs): 
     Frame.__init__(self, parent, bg=mybordercolor) 
     self.propagate(False) 
     self.label = Label(self, *args, **kwargs) 

     if myborderplace is 'left': 
      self.label.pack(side='right') 
     elif myborderplace is 'right': 
      self.label.pack(side='left') 
     else: 
      self.label.pack() 
      myborderwidth = myborderwidth * 2 

     self.config(width=self.label.winfo_reqwidth() + myborderwidth) 
     self.config(height=self.label.winfo_reqheight() + myborderwidth) 

root=Tk() 
root.geometry("50x50") 
root.rowconfigure(0, weight=1) 
root.columnconfigure(0, weight=1) 

MyLabel(root, text='Hello World', myborderwidth=2, mybordercolor='black', 
     myborderplace='right').grid() 

root.mainloop() 

結果:

enter image description here

+0

使用Canvas而不是Label更簡單嗎? –

+0

@NafRose我不確定。我將不得不嘗試寫一個例子。你可以試試看,看看你有多遠。 –

0

如果我使用的標籤,而不是帆布,我可以通過創建邊緣線條讓三面的邊框。 示例代碼:

from tkinter import * 
root=Tk() 
canvas=Canvas(height='250',width ='250') 
canvas.create_line(251,0,251,251,width=2,fill='black') 
canvas.create_line(3,3,251,3,width=2,fill='black') 
canvas.create_line(3,251,252,251,width=2,fill='black') 
canvas.pack() 
root.mainloop() 

其中。OUPUTS this

有可能是更實用的方式,雖然。