這種效果在cmd介面看著還可以,但放到圖形介面時就有點醜了,所以我用canvas重新做了乙個進度條,完美滿足了我的要求,看著也比較舒服。
import time
import threading
from tkinter import *
def update_progress_bar():
for percent in range(1, 101):
hour = int(percent/3600)
minute = int(percent/60) - hour*60
second = percent % 60
green_length = int(sum_length * percent / 100)
canvas_progress_bar.coords(canvas_shape, (0, 0, green_length, 25))
canvas_progress_bar.itemconfig(canvas_text, text='%02d:%02d:%02d' % (hour, minute, second))
var_progress_bar_percent.set('%0.2f %%' % percent)
time.sleep(1)
def run():
th = threading.thread(target=update_progress_bar)
th.setdaemon(true)
th.start()
top = tk()
top.title('progress bar')
top.geometry('800x500+290+100')
top.resizable(false, false)
top.config(bg='#535353')
# 進度條
sum_length = 630
canvas_progress_bar = canvas(top, width=sum_length, height=20)
canvas_shape = canvas_progress_bar.create_rectangle(0, 0, 0, 25, fill='green')
canvas_text = canvas_progress_bar.create_text(292, 4, anchor=nw)
canvas_progress_bar.itemconfig(canvas_text, text='00:00:00')
var_progress_bar_percent = stringvar()
var_progress_bar_percent.set('00.00 %')
label_progress_bar_percent = label(top, textvariable=var_progress_bar_percent, fg='#f5f5f5', bg='#535353')
canvas_progress_bar.place(relx=0.45, rely=0.4, anchor=center)
label_progress_bar_percent.place(relx=0.89, rely=0.4, anchor=center)
# 按鈕
button_start = button(top, text='開始', fg='#f5f5f5', bg='#7a7a7a', command=run, height=1, width=15, relief=groove, bd=2, activebackground='#f5f5f5', activeforeground='#535353')
button_start.place(relx=0.45, rely=0.5, anchor=center)
top.mainloop()
顯示效果如下:
Python GUI程式設計各種實現的對比
python gui程式設計各種實現的對比 2011年05月21日 從python語言的誕生之日起,就有許多優秀的gui工具集整合到python當中,這些優秀的gui工具集,使得python也可以在圖形介面程式設計領域當中大展身手,由於python的流行,許多應用程式都是由python結合那些優秀的...
ListView 分組完美實現
專案中需要用到分組列表,資料為動態,apidemo中的例子不能滿足要求。而expandlistview存在收起時才能重新整理的問題 專案要求不能收起 雖然實現了,但是很不爽。最後自己實現了乙個。section 組頭 row 組所屬行 public abstract class groupbasead...
CListCtrl透明完美實現
實現步驟如下 1 把clistctrl子類化 2 在ide中把clistctrl的transparent核取方塊勾上。3 實現wm parentnotify,如下 void cmylistctrl onparentnotify uint message,lparam lparam szfilenam...