Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将tkinter进度条链接到函数_Python_Python 3.x_Tkinter_Progress Bar - Fatal编程技术网

Python 将tkinter进度条链接到函数

Python 将tkinter进度条链接到函数,python,python-3.x,tkinter,progress-bar,Python,Python 3.x,Tkinter,Progress Bar,所以我有一个数学程序,我让用户输入10个问题。当这十个问题结束后,它会显示你答对了多少,等等 我想做的是将进度条链接到回答的问题数量,这样,如果用户完成了5个问题,进度将是一半,那么一旦完成10个问题,就可以重新开始。我目前在这里有这个定义来提交答案 def submit(self): try: user_answer = int(self.answer_strvar.get()) except: return if eval(self.

所以我有一个数学程序,我让用户输入10个问题。当这十个问题结束后,它会显示你答对了多少,等等

我想做的是将进度条链接到回答的问题数量,这样,如果用户完成了5个问题,进度将是一半,那么一旦完成10个问题,就可以重新开始。我目前在这里有这个定义来提交答案

def submit(self):
    try:
        user_answer = int(self.answer_strvar.get())
    except:
        return

    if eval(self.equation) == user_answer:
        print('Correct!! The Answer Was {}'.format(user_answer))
        self.correct_counter += 1
    else:
        print('Wrong!! Your Answer was: {} = {}, The Correct answer is {}'.format(self.equation, user_answer, eval(self.equation)))

    self.submit_counter += 1
    if self.submit_counter < NUM_QUESTIONS:
        self.update_equation()
    else:
        self.show_result()

        self.submit_counter = 0
        self.correct_counter = 0

使用控制变量设置值

class TestProgress():
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('ttk.Progressbar')

        self.val=tk.IntVar()
        self.val.set(0)
        self.pbar = ttk.Progressbar(self.root, length=300,
                    maximum=10, variable=self.val)
        self.pbar.pack(padx=5, pady=5)

        tk.Label(self.root, textvariable=self.val,
                 bg="lightblue").pack()

        ## wait 2 seconds & update
        self.root.after(2000, self.advance)
        self.root.mainloop()

    def advance(self):
        self.val.set(8)

TP=TestProgress()

如果将它设置为单独的进度条,在一个单独的框架上,我如何将它添加到我目前在程序中的实际框架中。??谢谢你发布的代码中没有框架。但是ProgressBar在哪个容器中并不重要。您设置了ProgressBar的控制变量,因此将其设置为self.submit\u计数器的值,而不是上面的8。
class TestProgress():
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('ttk.Progressbar')

        self.val=tk.IntVar()
        self.val.set(0)
        self.pbar = ttk.Progressbar(self.root, length=300,
                    maximum=10, variable=self.val)
        self.pbar.pack(padx=5, pady=5)

        tk.Label(self.root, textvariable=self.val,
                 bg="lightblue").pack()

        ## wait 2 seconds & update
        self.root.after(2000, self.advance)
        self.root.mainloop()

    def advance(self):
        self.val.set(8)

TP=TestProgress()