У меня есть класс Tkinter:Создание класса Tkinter и ждет возвращаемого значения
class DBCreatorWin():
def closeWindow(self):
tkMessageBox.showinfo("Ilmiont SQLite Database Manager", "This window cannot be closed.\nEnter a database name and press Continue.")
def returnName(self):
dbName = self.entry.get()
self.window.destroy()
return dbName
def __init__(self):
self.window = Toplevel()
self.window.transient(tkRoot)
self.window.grab_set()
self.window.resizable(width=False, height=False)
self.window.title("Ilmiont SQLite Database Manager")
self.window.protocol("WM_DELETE_WINDOW", self.closeWindow)
self.label = Label(self.window, text="Enter the name of the database to be created: ")
self.entry = Entry(self.window, width=30)
self.button = Button(self.window, text="Continue", command=self.returnName)
self.label.grid(row=0, column=0)
self.entry.grid(row=0, column=1)
self.button.grid(row=1, column=0, columnspan=2)
Я хочу, чтобы создать экземпляр этого класса в моей основной код и ждать возвращаемого значения. Пользователь вводит имя в поле ввода и нажимает кнопку «Продолжить». В этот момент значение должно быть возвращено туда, где первоначально был создан экземпляр класса. Как мне это сделать? Я не могу показаться, что он работает нормально, и я новичок в tkinter.
Спасибо заранее, Ilmiont
Нормальный поток кода не будет продолжаться после вызова 'mainloop' до тех пор, пока окно не будет закрыто. Если вы хотите, чтобы GUI оставался открытым, вам придется вызывать логику кода из GUI. Без [минимального примера] (http://stackoverflow.com/help/mcve) трудно сказать, что вы сейчас делаете неправильно. – jonrsharpe
Похоже, что вы, возможно, захотите изучить что-то вроде модуля '' easygui' (http://easygui.sourceforge.net/), который не управляется событиями. – martineau