tkinterを使って1秒毎に数値をprintするプログラムを作っています。
Web上に、以下のようなコードがありました。

・GUItest1.py

import tkinter as tk
import threading
import time

def time_count():
    global frame
    global stop_flag

    while not stop_flag:
        print(frame)
        frame=frame+1
        time.sleep(1)

def start():
    global stop_flag
    global thread

    # スレッドが無いなら生成してstart()する
    if not thread:
        thread = threading.Thread(target=time_count)
        stop_flag=False
        thread.start()

def stop():
    global stop_flag
    global thread

    # スレッドがある場合停止してjoin()する
    if thread:
        stop_flag=True
        thread.join()
        thread=None

frame=1
stop_flag=False
thread=None
root=tk.Tk()
Button001=tk.Button(root,text="Start",command=start)
Button001.pack()
Button002=tk.Button(root,text="Stop",command=stop)
Button002.pack()
root.mainloop()
# 終了時にスレッドを停止する処理
stop_flag=True
thread.join()

上記のコードを実行すると、GUIが立ち上がり
startボタンを押すと数値がprintされ、stopボタンを押すとprintが止まります。
また、再度startボタンを押すと数値のprintが再開されます。

私は、これと同様のことをクラスを使って実装しようとしました。
書いたコードは以下の通りです。

・GUItest2.py

import tkinter as tk
import threading
import time

class threadingGUI():
    def __init__(self):
        self.frame=1
        self.stop_flag=False
        self.thread=None

    def time_count(self):
        while not self.stop_flag:
            print(self.frame)
            self.frame=self.frame+1
            time.sleep(1)

    def start(self):
        if not self.thread:
            self.thread = threading.Thread(target=self.time_count)
            stop_flag=False
            self.thread.start()

    def stop(self):
        if self.thread:
            self.stop_flag=True
            self.thread.join()
            self.thread=None

    def GUI_start(self):
        root=tk.Tk()
        Button001=tk.Button(root,text="Start",command=self.start)
        Button001.pack()
        Button002=tk.Button(root,text="Stop",command=self.stop)
        Button002.pack()
        root.mainloop()

        self.stop_flag=True
        self.thread.join()

t = threadingGUI()
t.GUI_start()

私の書き直したコード(GUItest2.py)でも、GUIが立ち上がり
startボタンを押すと数値がprintされ、stopボタンを押すと停止します。
しかし、再度startボタンを押すと、printが再開されません。

私の書いたコードだと、何がおかしいのでしょうか?