Python ткинтер рассчитывает статус студента - PullRequest
0 голосов
/ 28 марта 2020

Я работаю над заданием python Tkinter, в котором поле ввода принимает пользовательский ввод, а затем отображает средний балл и статус студента. Я уверен, что у меня неправильные настройки, и я ищу совет о том, как использовать утверждение If для определения статуса студента. Должно ли все попадать под функцию getStudentStatus или лучше иметь две функции?

import math
from tkinter import *

#calculate student status
def getStudentStatus():
data = float(inputGPA.get())
floatedGPA = (data)
#Print student status
label2 = Label(GPA, text = 'Your GPA is:' ' %.2f' %     floatedGPA).grid(row = 3, column = 0)
label3 = Label(GPA, getStanding).grid(row = 4, column = 0)
return

def getStanding():
#Get academic Status
if(data>=3.5):
    return("This student is on the Deans List")
elif(data>=2.0):
    return("This student is on Acedmic Probation")
else:
    return("This student has Regular Standing")


#define window
GPA = Tk()
GPA.title("GPA Tool")
GPA.geometry("200x200")

#define variables
inputGPA = StringVar()

#label for text box
label1 = Label(GPA, text="Enter your GPA: ").grid(row = 0, column = 0)

#entry text box
entry1 = Entry(GPA, textvariable = inputGPA).grid(row = 1, column = 0)

#submit button
button1 = Button(GPA, text="Submit", command=getStudentStatus).grid(row = 2, column = 0)

GPA.mainloop()

1 Ответ

1 голос
/ 29 марта 2020

Чтобы избежать создания новой метки при каждом нажатии кнопки, вы можете создать пустую метку вне функции.

Чтобы назначить объект метки для переменной, разделите создание и размещение.

В функции вы можете настроить метку и добавить требуемый вывод.

Кроме того, вам нужно передать значение с плавающей точкой во вторую функцию, чтобы у операторов сравнения было значение для сравнения.

import math
from tkinter import *

#calculate student status
def getStudentStatus():
    data = float(inputGPA.get())
    floatedGPA = (data)
    #Print student status
    label2.configure(text = 'Your GPA is:' ' %.2f' %     floatedGPA)
    label3.configure(text = getStanding(floatedGPA))

def getStanding(data):
    #Get academic Status
    if(data>=3.5):
        return("This student is on the Deans List")
    elif(data>=2.0):
        return("This student is on Acedmic Probation")
    else:
        return("This student has Regular Standing")


#define window
GPA = Tk()
GPA.title("GPA Tool")
GPA.geometry("200x200")

#define variables
inputGPA = StringVar()

#label for text box
label1 = Label(GPA, text="Enter your GPA: ").grid(row = 0, column = 0)

#entry text box
entry1 = Entry(GPA, textvariable = inputGPA).grid(row = 1, column = 0)

# create empty labels
label2 = Label(GPA, text = '')
label3 = Label(GPA, text='')

# place empty labels
label2.grid(row = 3, column = 0)
label3.grid(row = 4, column = 0)

#submit button
button1 = Button(GPA, text="Submit", command=getStudentStatus).grid(row = 2, column = 0)

GPA.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...