我正在尝试在函数运行时在ttk progressbar
中显示百分比,以警告用户所执行过程的程度以及剩余的内容。能够显示正确的百分比,但百分比最高为23%
的{{1}}的{{1}}。
如何使length
的{{1}}达到100%
tuple
答案 0 :(得分:0)
正如@Bryan Oakley和其他人指出的,解决方案主要是正确地进行数学运算。这是一个根据您的问题代码执行此操作的具体示例。我还对其进行了修改,以证明a='2012-01-31'
[[ "$a" =~ (....)-(..)-(..) ]] || exit # exit if regex match failed
echo "${BASH_REMATCH[3]}-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}"
的工作方式略好一点,即使用通用的after()
函数来定期更新小节的值。
Progressbar
import time
import tkinter as tk
import tkinter.ttk as ttk
tuple_1 = tuple(range(1, 25))
brt = len(tuple_1)
def progress_bar_func():
global num
num = 1
root.after(500, update_progress_bar)
def update_progress_bar():
global num
if num <= brt:
percentage = round(num/brt*100) # Calculate percentage.
print(num, percentage)
progressBar['value'] = num
style.configure('text.Horizontal.TProgressbar',
text='{:g} %'.format(percentage))
num += 1
if num > brt:
print('Done')
else:
root.after(500, update_progress_bar)
root = tk.Tk()
root.geometry("300x300")
style = ttk.Style(root)
style.layout('text.Horizontal.TProgressbar',
[('Horizontal.Progressbar.trough',
{'children': [('Horizontal.Progressbar.pbar',
{'side': 'left', 'sticky': 'ns'})],
'sticky': 'nswe'}),
('Horizontal.Progressbar.label', {'sticky': ''})])
# , lightcolor=None, bordercolo=None, darkcolor=None
style.configure('text.Horizontal.TProgressbar', text='0 %')
progressBar = ttk.Progressbar(root, style='text.Horizontal.TProgressbar', length=200,
maximum=brt, value=0)
progressBar.pack()
progress_button = tk.Button(root, text="start", command=progress_bar_func)
progress_button.pack()
root.mainloop()
完成时的屏幕截图