#python #user-interface #tkinter #popupwindow #toplevel
#python #пользовательский интерфейс #tkinter #всплывающее окно #верхний уровень
Вопрос:
В этом фрагменте кода прямо здесь я получаю следующую ошибку. Я искал по всему SO и до сих пор понятия не имею, почему это происходит. В принципе, у меня есть опция в строке меню для возврата домой, и предполагается, что она выводит приглашение, в котором спрашивается, уверен ли пользователь, что он хочет уйти без отправки.
self.optionsMenu = tkinter.Menu(self, tearoff=0) # creates 'Options' cascade
self.optionsMenu.add_command(label="Home", command=self.parent.returnHome)
...
def returnHome(self, *args):
self.page = index.AdminApplication(self.parent)
self.confirmLeave()
def confirmLeave(self, *args):
confirmPopup = tkinter.Toplevel(self.parent)
confirmPopup.title("Confirm Leave Page")
confirmPopup.tkraise(self.parent)
question = tkinter.Label(confirmPopup, text="Are you sure you want to leave without submitting your bracket?", font=('Helvetica', '10'))
question.grid(row=0, column=0, sticky=tkinter.N tkinter.S tkinter.W tkinter.E)
leave = tkinter.Button(confirmPopup, text="Leave", height=0, width=100, command=self.changeRootSettings(self.page))
leave.grid(row=1, column=0)
cancel = tkinter.Button(confirmPopup, text="Cancel", height=0, width=100, command=confirmPopup.destroy())
cancel.grid(row=1, column=1)
confirmPopup.focus_force()
ошибка:
$ C:/Users/student/AppData/Local/Programs/Python/Python37-32/python.exe c:/Users/student/Documents/BracketsTool/index.py
Exception in Tkinter callback
Traceback (most recent call last):
File "C:UsersstudentAppDataLocalProgramsPythonPython37-32libtkinter__init__.py", line 1705, in __call__
return self.func(*args)
File "c:UsersstudentDocumentsBracketsToolCreateBracket.py", line 37, in returnHome
self.confirmLeave()
File "c:UsersstudentDocumentsBracketsToolCreateBracket.py", line 23, in confirmLeave
confirmPopup = tkinter.Toplevel(self.parent)
File "C:UsersstudentAppDataLocalProgramsPythonPython37-32libtkinter__init__.py", line 2345, in __init__
self.title(root.title())
TypeError: 'str' object is not callable
Боковое примечание: Я знаю, что код на самом деле пока не будет делать то, что я хочу, но я не хочу ничего пробовать, потому что я не могу протестировать его, предварительно не открыв окно правильно.
Комментарии:
1. есть ли у вашего объекта атрибут
title
, который является строкой?2. Что это
self.title
? Похоже, что это строка.3. self.title никогда не встречается в моем коде. Это сообщение об ошибке происходит из файла tkinter init .py.
4. Что это
self.parent
? Вы убедились, что это то, что вы предполагаете?5. Да, это переменная экземпляра, которая создается в моем методе init в качестве родительского объекта