2017-10-17 242 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

有可能是更实用的方式,虽然。