Первый вопрос здесь.
Я новичок в Python, пытаюсь создать текстовую игру, используя appJar для пользовательского интерфейса - проблема в том, что недавно мой GUI вылетает из моего кода при выходе из него. Независимо от того, закрываю ли я окно или использую кнопку «Выход», которая останавливает GUI, я получаю эту ошибку, которая не позволяет мне запускать любой код после закрытия пользовательского интерфейса.
Ошибка:
File "/Users/elianderson/Documents/Python/Roguelike Text Based/engine.py", line 5, in <module>
startProgram()
File "/Users/elianderson/Documents/Python/Roguelike Text Based/startup.py", line 34, in startProgram
app.go()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/appJar/appjar.py", line 1833, in go
self.topLevel.config(menu=self.menuBar)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 1637, in configure
return self._configure('configure', cnf, kw)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 1627, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: invalid command name "."
Вот мой код:
from appJar import gui
import classes
def startProgram():
# Main window and settings
with gui() as app:
app.setTitle("CARAVAN")
app.setSize("1000x700")
app.setResizable(canResize=False)
app.setGuiPadding(20, 20)
app.setBg("dimgray", override=True)
app.setFg("black", override=True)
app.setFont(size=16, family="Source Code Pro")
def exitProgram():
app.stop()
with app.labelFrame("Main Window", row=0, column=0, colspan=2, rowspan=2, stretch="both", sticky="nesw"):
app.addButton("Exit", exitProgram, row=1, column=1)
with app.labelFrame("Status", row=0, column=2, colspan=1, rowspan=1, stretch="row", sticky="nesw"):
app.setStretch("both")
app.setSticky("new")
app.addLabel("Status1", row=0, column=0, colspan=1, rowspan=1)
app.addLabel("Status2", row=1, column=0, colspan=1, rowspan=1)
with app.labelFrame("Inventory", row=1, column=2, colspan=1, rowspan=1, stretch="row", sticky="nesw"):
app.setStretch("both")
app.setSticky("new")
app.addLabel("Inv1", row=0, column=0, colspan=1, rowspan=1)
app.addLabel("Inv2", row=1, column=0, colspan=1, rowspan=1)
with app.labelFrame("Time", row=2, column=2, colspan=1, rowspan=1, stretch="row", sticky="esw"):
app.addLabel("progress", "test")
app.setSticky("esw")
app.setStretch("column")
app.addLabelEntry(" ", row=2, colspan=1)
app.setEntryDefault(" ", "Respond here...")
app.go()
startProgram()