Python Tkinter 状态栏程序

5 投票
1 回答
20714 浏览
提问于 2025-04-17 06:17
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()

你好,朋友。这是我写的状态栏代码。虽然我没有遇到任何错误或警告,但我还是没能成功显示状态栏。不过我的小部件打开时是空的。有没有人能在这方面帮帮我?

谢谢你

1 个回答

10

它确实存在,只是因为没有任何控件占用太多空间,所以看起来很小。如果你在标签里放一些文字,或者给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('')就可以了。

撰写回答