tkinterを用いた画面遷移においてエラーが発生してしまう


tkinterを用いて、画面遷移を含むプログラムを開発しております。1画面目に表示されるボタンがクリックされたら、1画面目が消え、2画面目が表示されるといったプログラムを作りたいです。実行してみたところ、動作は想定通りなのですが、エラーメッセージが表示されてしまいます。どなたか、この理由を教えていただけますでしょうか。

#### 想定する動作

  1. 1画面目が表示される
  2. ボタンを押すと、1画面目が消え、2画面目が表示される

#### 実際の動作

想定通りの動作をしました。

**エラーメッセージ**

[code]

    invalid command name ".!button"
        while executing
    "$w cget -state"
        (procedure "tk::ButtonDown" line 4)
        invoked from within
    "tk::ButtonDown .!button"
        (command bound to event)
    
[/code]

### やってみたこと

ネットで調べてみたところ、quitとdestoroyが存在することを知りました。  
おそらく、何らかの理由でdestoroyの後にボタンクリック判定が来て、存在しないボタンを参照し、エラーが発生しているものと思っております。  
destoyをquitに変更してみましたが、1画面目のボタンが2画面目にも表示されてしまいます。

**コード**

[code]

    import tkinter as tk
    
    
    # 1画面目のルート設定
    root = tk.Tk()
    root_width = round(root.winfo_screenwidth()/2)
    root_height = round(root.winfo_screenheight()/2.5)
    root.geometry(f"{root_width}x{root_height}")
    
    # 1画面目のボタン設定
    button = tk.Button(root, text="ボタン", font=(
        "MSゴシック", "40"), width=5, height=2)
    button.pack()
    
    
    def dest(event):
        root.destroy()
    
    
    # 押された時に画面を削除
    button.bind("<1>", dest)
    
    # 1画面目を表示する
    root.mainloop()
    
    # 2画面目の設定
    root = tk.Tk()
    root.geometry(f"{root_width}x{root_height}")
    label1 = tk.Label(text="2画面目です。")
    label1.pack()
    
    # 2画面目の表示スタート
    root.mainloop()
    
[/code]

**環境**

Python 3.7.1  
macOS




コールバック関数内での `root.destroy()` の実行は無効の様ですので、`root.quit()` でアプリケーションループから抜けた後で
`root.destroy()` を実行してみて下さい。

[code]

    def dest(event):
        root.quit()
    
    # 押された時に画面を削除
    button.bind("<1>", dest)
    
    # 1画面目を表示する
    root.mainloop()
    root.destroy()
    
[/code]




コールバック関数内での `root.destroy()` の実行は無効の様ですので、`root.quit()` でアプリケーションループから抜けた後で
`root.destroy()` を実行してみて下さい。

[code]

    def dest(event):
        root.quit()
    
    # 押された時に画面を削除
    button.bind("<1>", dest)
    
    # 1画面目を表示する
    root.mainloop()
    root.destroy()
    
[/code]

