2017-03-14 6 views
0

以下は私のコードの一部です。私が抱えている問題は、メインウィンドウのTkinterエントリに値を挿入したいのですが、変数 'selected_db'を呼び出すとAの値が得られます。 'OKボタン'の後に値を取得したいのですが、私がBの価値を得るためにクリックされました別のクラスのインスタンスとインスタンスのイベント(Tkinterボタンをクリックした後)の変数の更新

私はそれをどうやって行うべきか、これが正しい方法に近いのか分からないので、私は本当にここでいくつかの助けに感謝します。事前に

おかげ

Main_Window(): 

    def browse_db(self): 
     my_dbs = Databases() 
     self.db_entry.insert(0,my_dbs.selected_db) 

    def __init__(self): 

     self.main_window = Tkinter.Toplevel() 
     self.db_entry = ttk.Entry(self.main_window, width=10) 
     self.db_entry.grid(row=1, column= 1) 

Databases(): 

    def __init__(self): 

     self.selected_db = A 
     self.db_window = Tkinter.Toplevel() 
     okButtom = ttk.Button(self.db_window, command=self.grab_db).grid(row=1, column=1) 

    def grab_db(self): 
     self.selected_db = B 

答えて

0

それは完全に、実施例なしで伝えるのは難しいのですが、私は何を求めていることは、あなたのポップアップが終了するため、あなたのメインウィンドウの待機を作る方法だと思います。言い換えれば、私たちは通常「モーダルウィンドウ」と呼んでいます。

self.transient(master) # set to be on top of the main window 
self.grab_set() # hijack all commands from the master (clicks on the main window are ignored) 
master.wait_window(self) # pause anything on the main window until this one closes 
+0

私がまさに必要だった:あなたはToplevelコールにマスターウィンドウを渡し、ポップアップの__init__メソッドの最後に、これらのコマンドを追加する必要があることを行うには!ありがとうございました!もしその質問が十分にはっきりしていなければ、私はごめんなさい。 – munoz

関連する問題