2016-02-16 3 views
0

Я создаю интерфейс для моего вопроса об электронном обучении, который находится на легкой трудности. что-то не так с кодом? Он продолжает говорить, что в строке 21 есть ошибка. Какая ошибка?Python GUI TKinter

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

getanswer = Tkinter.IntVar() 


def userinput(): 
    Answer1 = getanswer.get() 
    if Answer1 == 8 : 
     total = total + 1 

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

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

LabelName = Tkinter.Label (MathsEasyLevel1, text="State the number of edges in a cube") 
LabelName.pack() 
TxtBoxName = Tkinter.Entry (MathsEasyLevel1, textvariable= getanswer) 
TxtBoxName.pack() 

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

BtnName = Tkinter.Button (MathsEasyLevel1, text="Proceed", command=userinput).pack() 
+1

Было бы лучше, если бы вы добавили сообщение об ошибке в свой вопрос stackoverflow. – ganchito55

ответ

2

Есть несколько проблем, которые я вижу. Строка 21 (LabelName = Tkinter.Label (MathsEasyLevel1, text="Question 1", font("Impact",20)).grid(row=0,column=2,sticky="new"), я полагаю) принимает font в качестве аргумента в виде font = ("Impact",20), так что ваш исправленный код для этой строки будет:

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

Кроме того, вы назначаете исход grid метода вы работаете в Метка_строки. Вы, вероятно, хотите сделать это:

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

Таким образом, вы можете ссылаться на LabelName, теперь фактическую метку, несколько раз.

Вы также используете то же имя переменной, LabelName, для двух разных Label виджетов. Это означает, что ссылка на предыдущую не сохраняется, что может вызвать проблемы на определенном этапе. Другая проблема заключается в том, что вы смешиваете использование метода упаковки grid и метода упаковки pack в том же окне, которое равно not a good idea. Попробуйте вместо этого:

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) 
TxtBoxName = Tkinter.Entry (MathsEasyLevel1, textvariable= getanswer) 
TxtBoxName.grid(row=2,column=0) 

Очевидно, что вы можете изменить rows и columns, как вы хотите. Остальная часть вашего кода выглядит хорошо для меня!

+0

Не могли бы вы помочь мне разобраться с проблемой ниже? Спасибо –

+0

@MohdFareezuanKechik Если вы нашли мой ответ полезным, не стесняйтесь принять ответ, нажав на галочку! –