python 3.x 进度条 tkinter 向后?

python 3.x progressbar tkinter backwards?

我正在使用 python 3.4,tkinter,我想使用 progrssbar 来模拟注射器,我的意思是注射器内的液体将是进度条

通常 tkinter python 3.4 中的这个进度条处于水平或垂直位置,我希望它垂直,我知道它开始从底部到顶部填充进度条,这是正确的注射器变得液体

但我的问题是我怎样才能把它倒过来?我的意思是进度条而不是填充注射器 将清空注射器

我正在使用

BarVolVal_1 = ttk.Progressbar(mGui, orient='horizontal', length=100, mode='determinate')
BarVolVal_1.place(x=80,y=80)
BarVolVal_1.start(50)

帮助我只想填充和清空栏

使用Progressbar.start(),你无法控制步长,默认为1。
因此,您不必使用 Progressbar.start(),而是创建自己的循环来调用 Progressbar.step(stepsize)。这样,您可以使步长为负值以反转步长的方向。

在下面的示例中,我创建了一个每 50 毫秒调用一次的 step 函数,并且根据方向 dir,将步长设置为 1 或 -1(值dir)。然后在 3 秒后 change_dir 被调用,它将步骤的方向更改为 -1,因此进度条 'empties'。从那时起,方向每 2 秒改变一次。

import tkinter as tk
from tkinter import ttk

def step():
    BarVolVal_1.step(dir)
    mGui.after(50, step)

def change_dir():
    global dir
    dir *= -1
    mGui.after(2000, change_dir)

mGui = tk.Tk()
dir = 1

BarVolVal_1 = ttk.Progressbar(mGui, orient='horizontal', length=100, mode='determinate')
BarVolVal_1.pack()

step()
mGui.after(3000, change_dir)

mGui.mainloop()

好的,感谢您的帮助,但该代码适用于 2.7,

3.4 的代码就是这个并且可以正常工作

import tkinter as tk
from tkinter import ttk
def step():
    BarVolVal_1.step(dir)
    mGui.after(50, step)
def change_dir():
    global dir
    dir *= -1
    mGui.after(2000, change_dir)
mGui = tk.Tk()
dir = 1
BarVolVal_1 = ttk.Progressbar(mGui, orient='vertical', length=100, mode='determinate')
BarVolVal_1.pack()
step()
mGui.after(3000, change_dir)
mGui.mainloop()