在事件(单击Tkinter按钮)和另一个类的实例之后更新类中的变量

时间:2017-03-14 17:20:15

标签: python python-2.7 tkinter

以下是我的代码的一部分。我遇到的问题是我想在主窗口中为Tkinter条目插入一个值,但是当我调用变量' selected_db'我得到A的值。我想在'确定按钮后得到值。单击,所以我得到B的值

我不确定我该怎么做,或者这是否接近正确的方式,所以我真的很感激这里的一些帮助。

提前致谢

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

1 个答案:

答案 0 :(得分:0)

如果没有一个完整的,有效的例子,很难说,但我认为你要问的是如何使你的主窗口等待你的弹出窗口退出。换句话说,我们通常称之为"模态窗口"。为此,您需要将主窗口传递给Toplevel调用,并在弹出式__init__方法的末尾添加这些命令:

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