使用tkinter时的语法错误
我在代码开头导入了tkinter,下面是我在GUI部分的代码。之前一切都运行得很好,按钮也正常显示,但在我写了'strengthSkill'的代码后,这一行的开头出现了语法错误:
mlabel=Label(text='Battle!!').place(x=50,y=130)
错误提示中高亮显示的是"mlabel",但我查看了很久也没找到问题所在。我还创建了一个去掉所有Tkinter内容的第二个版本,结果一切都正常。
mGui = Tk()
ment = diceint()
mGui.geometry('400x400')
mGui.configure(bg="purple")
mGui.title('Miss Watts Dice Games')
mlabel=Label(text='4,6,12 sided dice roller').place(x=50,y=50)
mbutton=Button(mGui,text="Go",command=diceroll).place(x=250,y=50)
mentry=Entry(mGui,variable=ment).pack()
mlabel=Label(text='Strength and skill calculator').place(x=50,y=90)
mbutton=Button(mGui,text="Go",command=strengthSkill.place(x=250,y=90)
mlabel=Label(text='Battle!!').place(x=50,y=130)
mbutton=Button(mGui,text="Go",command=battle.place(x=250,y=130)
mbutton=Button(mGui,text="Exit",command=close).place (x=50,y=250)
mlabel=Label(text='\N{COPYRIGHT SIGN} Dru Watts 2014').place(x=50,y=300)
mGui.mainloop()
不幸的是,我不能发布主要的代码部分,因为我正在为我的学生制作一个示例,展示他们需要完成的控制评估课程作业,我希望他们不要看到这个!
请多多包涵——我对tkinter非常陌生。担心我可能把教程搞混了!
1 个回答
1
这里缺少一个右括号:
mbutton=Button(mGui,text="Go",command=strengthSkill).place(x=250,y=90)
^
还有这里:
mbutton=Button(mGui,text="Go",command=battle).place(x=250,y=130)
^
另外,因为每个Tkinter小部件的place
和pack
方法都是直接在原地操作的,所以mbutton
、mlabel
等都会被赋值为None
。因此,如果你打算在后面使用这些变量,就需要把这些方法放在单独的行上调用:
mlabel=Label(text='4,6,12 sided dice roller')
mlabel.place(x=50,y=50)
否则,我建议干脆去掉这些变量,因为它们其实没什么用:
Label(text='4,6,12 sided dice roller').place(x=50,y=50)
Button(mGui,text="Go",command=diceroll).place(x=250,y=50)
Entry(mGui,variable=ment).pack()