无法运行程序但没有显示任何错误

时间:2016-02-17 11:15:57

标签: python-2.7 user-interface python-3.x coding-style

我无法运行该程序。但是没有错误显示代码错误我想制作一个测验程序以及如何将此代码与我的其他代码结合起来我们是否需要使用TopLevel?这是我的代码:

import Tkinter
MathsEasyLevel1 = Tkinter.Tk()
MathsEasyLevel1.geometry("320x260")
MathsEasyLevel1.title("Mathematics Easy")
total = 0

getanswer = Tkinter.IntVar()
getanswer2 = Tkinter.StringVar()

def userinput():
    Answer1 = getanswer.get()
    if Answer1 == 8 :
        total = total + 1
        MathsEasyLevel1.withdraw()
        MathsEasyLevel2.deiconify()

    else :
        total = total
        MathsEasyLevel1.withdraw()
        MathsEasyLevel2.deiconify()
    return

def userinput2():
    Answer2 = getanswer2.get()
    if Answer2 == B :
        total = total + 1
        MathsEasyLevel2.withdraw()
        ResultBox.deiconify()

    else :
        total = total
        MathsEasyLevel2.withdraw()
        ResultBox.deiconify()
    return

LabelName1 = Tkinter.Label (MathsEasyLevel1, text="Question 1", font=("Impact",20))
LabelName1.grid(row=0,column=2,sticky="new")

LabelName2 = Tkinter.Label (MathsEasyLevel1, text="State the number of edges in a cube")
LabelName2.grid(row=1,column=0)
LabelName2.pack()
TxtBoxName = Tkinter.Entry (MathsEasyLevel1, textvariable= getanswer)
TxtBoxName.grid(row=2,column=0)
TxtBoxName.pack()

MathsEasyLevel2 = Tkinter.Tk()
MathsEasyLevel2.geometry("320x260")
MathsEasyLevel2.title("Mathematics Easy")

BtnName = Tkinter.Button (MathsEasyLevel1, text="Next", command=userinput).pack()


LabelName3 = Tkinter.Label (MathsEasyLevel2, text="Question 2", font=("Impact",20))
LabelName3.grid(row=0,column=2,sticky="new")

LabelName3 = Tkinter.Label (MathsEasyLevel2, text="What is the place value of the digit 4 in 76421?")
LabelName3.grid(row=1,column=0)
LabelName3.pack()

LabelName4 = Tkinter.Label (MathsEasyLevel2, text="A.Thousands B.Hundreds C.Ones D.Tens")
LabelName4.grid(row=2,column=0)
LabelName4.pack()

TxtBoxName2 = Tkinter.Entry (MathsEasyLevel2, textvariable= getanswer2)
TxtBoxName2.grid(row=3,column=0)
TxtBoxName2.pack()

BtnName2 = Tkinter.Button (MathsEasyLevel2, text="Next", command=userinput2).pack()
MathsEasyLevel2.withdraw()

ResultBox = Tkinter.Tk()
ResultBox.geometry("320x260")
ResultBox.title("Results")

LabelName5 = Tkinter.Label (ResultBox, text="Total correct answers :"+ `total` , font=("Impact",20))
LabelName5.grid(row=1,column=0,sticky="new")

LabelName5 = Tkinter.Label (ResultBox, text="Marks : "+`(total/2*100)`, font=("Impact",20))
LabelName5.grid(row=2,column=0)
ResultBox.withdraw()

def userinput3():
    ResultBox.withdraw()
    MenuBox.deiconify()
    return

MathsEasyLevel1.mainloop()

2 个答案:

答案 0 :(得分:0)

请提供更多信息,告诉您如何运行此操作以及"输出"你得到了。你收到错误了吗?它运行正常吗?另外,我建议使用主类,而不是尝试在文件中间运行代码。

@edit下次请尝试使标题更具代表性(语言等)

答案 1 :(得分:0)

我已经找到了解决方案,但结果箱的标记不起作用。它没有计算总数。这是我的新代码:

import Tkinter 
import tkMessageBox

#easybox1
EasyBox1 = Tkinter.Tk()
EasyBox1.geometry("250x200")
EasyBox1.title("Quesion 1")

Tkinter.Label (EasyBox1, text="answer:").pack()

answr1 = Tkinter.Entry (EasyBox1)
answr1.pack()

LabelName2 = Tkinter.Label (EasyBox1, text="State the number of edges in a cube")
LabelName2.grid(row=1,column=0)
LabelName2.pack()

def next1():
    total = 0
    if not answr1.get():
        tkMessageBox.showerror('no answer')
    elif answr1.get() == 8 :
        total = total + 1
        EasyBox1.withdraw()
        EasyBox2.deiconify()
    elif answr1.get() != 8:
            total = total
            EasyBox1.withdraw()
            EasyBox2.deiconify()
    return

#easybox2
EasyBox2 = Tkinter.Tk()
EasyBox2.geometry("250x200")
EasyBox2.title("Quesion 2")

Tkinter.Label (EasyBox2, text="answer:").pack()

answr2 = Tkinter.Entry (EasyBox2)
answr2.pack()

LabelName2 = Tkinter.Label (EasyBox2, text="What is the place value of the digit 4 in 76421?")
LabelName2.grid(row=1,column=0)
LabelName2.pack()

LabelName2 = Tkinter.Label (EasyBox2, text="A.Thousands B.Hundreds C.Ones D.Tens")
LabelName2.grid(row=1,column=0)
LabelName2.pack()

def mark():
    total = 0
    if not answr2.get():
        tkMessageBox.showerror('no answer')
    elif answr2.get() in ["B", "b"]:
        total = total + 1
        EasyBox1.withdraw()
        ResultBox.deiconify()
    else:
        total = total
        EasyBox1.withdraw()
        ResultBox.deiconify()


EasyBox2.withdraw()

total = 0


ResultBox = Tkinter.Tk()
ResultBox.geometry("320x260")
ResultBox.title("Results")

LabelName5 = Tkinter.Label (ResultBox, text="Marks : "+`total`, font=("Impact",20))
LabelName5.grid(row=2,column=0)
ResultBox.withdraw()

Tkinter.Button (EasyBox1, text="Next", command=next1).pack()
Tkinter.Button (EasyBox2, text="result", command=mark).pack()

EasyBox1.mainloop()