2011-11-14 48 views
1
from Tkinter import * 
class StatusBar(Frame): 
    def __init__(self, master): 
     Frame.__init__(self, master) 
     self.label = Label(self, bd=1, relief=SUNKEN, anchor=W) 
     self.label.pack(fill=X)   
    def set(self, format, *args): 
     self.label.config(text=format % args) 
     self.label.update_idletasks() 
    def clear(self): 
     self.label.config(text="") 
     self.label.update_idletasks() 
root = Tk() 
root.update() 
d =StatusBar(root) 

d.pack() 
mainloop() 

嗨Friend.This是我的狀態欄代碼。儘管我沒有得到任何錯誤或警告。我沒有獲得狀態欄。但是我的Widget是空着的打開的。在這方面任何人都可以幫助我。狀態欄的Python Tkinter程序

謝謝

回答

6

它在那裏;它只是非常小,因爲沒有任何部件需要太多空間。 如果你把標籤的一些文字,或者給root幾何,它會更容易看到:

import Tkinter as tk 
class StatusBar(tk.Frame): 
    def __init__(self, master): 
     tk.Frame.__init__(self, master) 
     self.variable=tk.StringVar()   
     self.label=tk.Label(self, bd=1, relief=tk.SUNKEN, anchor=tk.W, 
          textvariable=self.variable, 
          font=('arial',16,'normal')) 
     self.variable.set('Status Bar') 
     self.label.pack(fill=tk.X)   
     self.pack() 

root=tk.Tk() 
d=StatusBar(root) 
root.geometry('300x100') 
root.mainloop() 

順便說一句,允許標籤內的文本改變,使用tk.StringVar 。 調用self.variable.set(...)將更改標籤的文字。並清除它只需撥打self.variable.set('')