【发布时间】:2020-01-17 20:11:13
【问题描述】:
这里是第一个问题。
我是 Python 新手,正在尝试使用 appJar 作为 UI 制作基于文本的游戏 - 问题是,最近我的 GUI 在我退出时会导致代码崩溃。无论是关闭窗口还是使用停止 GUI 的退出按钮,我都会收到此错误,并且它会阻止我在关闭 UI 后运行任何代码。
错误:
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
这是我的代码:
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()
【问题讨论】:
-
你有一个缩进错误,这个:
app.go(),必须在with gui() as app:块内。
标签: python python-3.x tkinter appjar