2016-03-30 10 views
-1

私は人間のマシンインタフェース設計に取り組んでいます... 私はラベルの配列を作成しました...私は配列内のすべてのラベルに対して同じラベルとプロパティを使用しましたが、私のコード、ラベルのサイズ一致しない....Tkinterのラベルサイズが一致しません

これは私のコードです....

from tkinter import *  
import time 

root = Tk() 

class Clock: 
    def __init__(self): 
     self.time1 = '' 
     self.time2 = time.strftime('%H:%M:%S') 
     self.mFrame = Frame() 
     self.mFrame.pack(side=TOP,fill=X) 

     self.bottomFrame = Frame() 
     self.bottomFrame.pack(side=BOTTOM,fill=BOTH) 

     root.title('HUMAN MACHINE INTERFACE') 

     self.company_name=Label(self.mFrame, text='Host Company Name', font=('Arial',24,'bold','underline'),bg='white',relief=RAISED).pack(fill=X) 

     self.machine_name=Label(self.mFrame, text='Machine name', font=('Arial',24,'bold','underline'),bg='yellow',relief=RAISED).pack(fill=X) 

     self.my_company_name=Label(self.mFrame, text='SYNERGY AUTOMATION', font=('Arial',24,'bold','underline'),relief=SUNKEN).pack(side=LEFT) 

     self.watch = Label(self.mFrame, text=self.time2, font=('times',24,'bold'),relief=SUNKEN) 
     self.watch.pack(side=RIGHT) 

     self.clock() #first call it manually 

     num=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16',] 
     r=0 
     c=0 

     for i in num: 
      Label(self.bottomFrame, text=i,bg='red',fg='white',font=(34),padx=50,pady=20,relief=SUNKEN).grid(row=r,column=c) 
      c = c + 1 
      if c == 4 or c == 8: 
       c=0 
       r=r+1 




    def clock(self): 
     self.time2 = time.strftime('%H:%M:%S') 
     self.watch.configure(text=self.time2) 
     self.mFrame.after(200, self.clock) #it'll call itself continuously 

obj1 = Clock() 
root.mainloop() 

答えて

2

あなたがgridを呼び出すときは、stickyオプションを使用していません。それがなければ、ラベルはテキストを含むだけの大きさになります。あなたがそれらをテーブルのセルを埋めるためにしたい場合は、ちなみにsticky=N+S+E+W

Label(...).grid(... sticky=N+S+E+W) 

のようなものを使用し、

self.company_name=Label(...).pack(fill=X) 

それが何packリターンですので、あなたはNoneからself.company_nameを設定しています。 tkinterのベストプラクティスは、ウィジェットの作成をスクリーン上にレイアウトすることから分離することです:

self.company_name=Label(...) 
... 
self.company_name.pack(fill=X) 
関連する問題