⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 progressbar.py

📁 documents classification and words statiscs TF/IDF etc
💻 PY
字号:
#!/usr/bin/python# -*- coding: iso-8859-1 -*-"""A  basic widget for showing the progressbeing made in a task."""from Tkinter import *class ProgressBar:    def __init__(self, master=None, orientation="horizontal",                 min=0, max=100, width=150, height=18,                 doLabel=1, appearance="sunken",                 fillColor="slateblue", background="gray",                 labelColor="black", labelFont="Verdana 8",                 labelText="", labelFormat="%d %%",                 value=50, bd=0):        # preserve various values        self.master=master        self.orientation=orientation        self.min=min        self.max=max        self.width=width        self.height=height        self.doLabel=doLabel        self.fillColor=fillColor        self.labelFont= labelFont        self.labelColor=labelColor        self.background=background        self.labelText=labelText        self.labelFormat=labelFormat        self.value=value        self.frame=Frame(master, relief=appearance, bd=bd)        self.canvas=Canvas(self.frame, height=height, width=width, bd=0,                               highlightthickness=0, background=background)        self.scale=self.canvas.create_rectangle(0, 0, width, height,                            fill=fillColor)        self.label=self.canvas.create_text(self.canvas.winfo_reqwidth() / 2,                           height / 2, text=labelText,                           anchor="c", fill=labelColor,                           font=self.labelFont)        self.update()        self.canvas.pack(side='top', fill='x', expand='no')    def updateProgress(self, newValue, newMax=None):        if newMax:            self.max = newMax        self.value = newValue        self.update()    def update(self):        # Trim the values to be between min and max        value=self.value        if value > self.max:            value = self.max        if value < self.min:            value = self.min        # Adjust the rectangle        if self.orientation == "horizontal":            self.canvas.coords(self.scale, 0, 0,                 float(value) / self.max * self.width, self.height)        else:            self.canvas.coords(self.scale, 0,                         self.height - (float(value) / self.max*self.height),                 self.width, self.height)        # Now update the colors        self.canvas.itemconfig(self.scale, fill=self.fillColor)        self.canvas.itemconfig(self.label, fill=self.labelColor)        # And update the label        if self.doLabel:                if value:                    if value >= 0:                        pvalue = int((float(value) / float(self.max)) * 100.0)                    else:                        pvalue = 0                    self.canvas.itemconfig(self.label, text=self.labelFormat % pvalue)                else:                    self.canvas.itemconfig(self.label, text='')        else:            self.canvas.itemconfig(self.label, text=self.labelFormat % self.labelText)        self.canvas.update_idletasks()if __name__ == '__main__':    maximum = 5000        tk = Tk()    frame = Frame(tk)    frame.pack(expand=YES, fill=BOTH)    Label(frame, text='ProgressBar').pack(pady=10)        p = ProgressBar(frame, bd=2, height=25, labelColor='white')    p.frame.pack(padx=20, pady=20)        Button (frame, text="button", command=tk.destroy).pack(pady=10)    p.updateProgress(0)    p.frame.update_idletasks()    for x in range(maximum):        p.updateProgress(newValue=x, newMax=maximum)    p.updateProgress(0)    tk.mainloop()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -