2011-11-14 3 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() 

안녕 친구. 이것은 어떤 오류나 경고도받지 못했지만 상태 표시 줄에 대한 내 코드입니다. 상태 표시 줄을 얻지 못했습니다. 하지만 내 위젯이 비어있는 상태로 열리고 있습니다. 어떤 사람이이 부분에서 나를 도울 수 있습니까?상태 표시 줄에 대한 파이썬 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('')으로 전화하십시오.

관련 문제