2017-10-17 8 views
0

Tkinterのラベル

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

片側だけに境界線を除去する方法はありthisを生成し、次のコードの境界線を削除しますか? Q上の例を使用して

+1

枠内にラベルが付いたフレームを作成して、それを使用して枠を作成することはできますが、それはもう少し進んだが、それはできる。 –

答えて

1

/here(Iが重複質問と、それにリンクされているだろうが、それはこのOPの質問に比較するために、いくつかのtweekingを必要としていました。)

私たちは、ラベルを持つように見えるものを作成することができます3面と1面のボーダーなし。

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

Labelの代わりにCanvasを使用すれば、プロセスが簡単になりますか? –

+0

@NafRoseよくわからない。私は例を書いてみる必要があります。あなたはそれを撃つことができ、あなたがどれだけ遠くにいるかを見ることができます。 –

0

私はキャンバスの代わりにラベルを使用している場合は、私はエッジによってラインを作成することにより、三辺の境界線を作ることができます。 例コード:this

はしかし、より実用的な方法があるかもしれませんouputs

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()