2017-08-14 14 views
-1

終了時にウィンドウを閉じるには、完了変数が必要です。メニューはまた機能です。私はroot1.destoryを試しましたが、done関数はroot1が何であるかを見ることができません。 done関数がroot1が何であるかを理解してそれを閉じるにはどうすればよいでしょうか。どちらの関数も他の場所で呼び出されます。私は機能を使用しています。私はすぐに起動し、呼び出されたときだけにしておきたいからです。私のコードは次のとおりです。関数が別の関数を読み込む方法

def edit_menu(): 


    root1 = Tk() 
    root1.title("Edit Menu") 

    menu = Frame(root1) 
    menu.pack(pady = 5, padx = 50) 
    var = StringVar(root1) 

    options = [ 
      "Forename", 
      "Surname", 
      "Email", 
      "Date of birth", 
      "Home address", 
      "Home phone number", 
      "Gender", 
      "Tutor group", 

] 
    option = OptionMenu(menu, var, options[0], *options, command=edit_functions) 


    var.set('Select') 

    option.grid(row = 1, column = 1) 

    root1.mainloop() 
    return edit_menu 

def done(): 
    print() 
    done = (input("If you have finnished editing, type done: ")) 
    if done == "done": 
     root1.destroy() 
+0

ようこそ:

は、私はあなたがこのような何かを持って見ていると思います。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 投稿したコードをテキストファイルに貼り付け、説明した問題を再現できるはずです。 投稿されたコードでは、アプローチを表示したり、エラーを引き出したりするには不十分です。 – Prune

+0

第1の問題は、mainloopの後に関数があることです。とにかくその機能を呼び出すものはありません。 –

+1

これがうまくいくと思われる方法を理解するには、ここで十分ではありません。一般的に、クラスメソッドを 'done'するか、引数として' done'に 'root1'を渡します。クラスもメインプログラムもないので、あなたが望むものを見るのは難しいです。 – Prune

答えて

1

あなたがちょうどので、この答えはあなたのコードにこれを統合するためにしかし、それは簡単なはず制限されることが私達にあなたの全体的なコードのセクションを示した表示されます。

私たちは、完了ボタンを含むtkinterウィンドウの作成に必要なものすべてを置くことができます。 StackOverflowのに

from tkinter import * 

def edit_menu(): 

    root1 = Tk() 
    root1.title("Edit Menu") 

    menu = Frame(root1) 
    menu.pack(pady = 5, padx = 50) 
    var = StringVar(root1) 

    options = [ 
      "Forename", 
      "Surname", 
      "Email", 
      "Date of birth", 
      "Home address", 
      "Home phone number", 
      "Gender", 
      "Tutor group", 

    ] 
    option = OptionMenu(menu, var, options[0], *options) 

    var.set('Select') 
    option.grid(row = 1, column = 1) 

    done_btn = Button(root1, text = "Done", command = lambda: root1.destroy()) 
    done_btn.pack() 


    root1.mainloop() 

edit_menu() 
+0

これはおそらく私がやろうとしていたことよりも実装する方が良いでしょう。ありがとう。 – user8435959

関連する問題