Как сделать так, чтобы окно сообщения отображалось при неправильном вводе? - PullRequest
0 голосов
/ 10 декабря 2018

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

from tkinter import *
from tkinter import messagebox

valid1 = True
valid2 = True
valid3 = True
valid4 = True
valid5 = True

def saveCustomerDetails():
    CustomerIDSave = CustomerIDVar.get()
    CustomerIDSave = CustomerIDSave.ljust(25)

    CustomerTitleSave = CustomerTitleVar.get()
    CustomerTitleSave = CustomerTitleSave.ljust(25)

    FirstNameSave = FirstNameVar.get()
    FirstNameSave = FirstNameSave.ljust(25)

    SurnameSave = SurnameVar.get()
    SurnameSave = SurnameSave.ljust(25)

    DOBSave = DOBVar.get()
    DOBSave = DOBSave.ljust(25)

    fileObject = open("CreateAccount.txt","a")
    fileObject.write(CustomerIDSave + CustomerTitleSave + FirstNameSave + SurnameSave + DOBSave + "\n")
    fileObject.close()

def checkID():
    global valid1
    CustomerID = CustomerIDVar.get()

    if CustomerID.isdigit():
        valid1 = True
    elif CustomerID is "":
        valid1 = True
    else:
        valid1 = False

    if valid1 == False:
        messagebox.showerror("Incorrect", "Incorrect CustomerID")

def checkTitle():
    global valid2
    CustomerTitle = CustomerTitleVar.get()

    if CustomerTitle.isalpha():
        valid2 = True
    elif CustomerTitle is "":
        valid2 = True
    else:
        valid2 = False

    if valid2 == False:
        messagebox.showerror("Incorrect", "Incorrect CustomerID")

def checkFirstName():
    global valid3
    FirstName = FirstNameVar.get()

    if FirstName.isalpha():
        valid3 = True
    elif FirstName is "":
        valid3 = True
    else:
        valid3 = False

    if valid3 == False:
        messagebox.showerror("Incorrect", "Incorrect CustomerID")

def checkSurname():
    global valid4
    Surname = SurnameVar.get()

    if Surname.isalpha():
        valid4 = True
    elif Surname is "":
        valid4 = True
    else:
        valid4 = False

    if valid4 == False:
        messagebox.showerror("Incorrect", "Incorrect CustomerID")

def checkDOB():
    global valid5
    DOB = DOBVar.get()

    if DOB.isdigit():
        valid5 = True
    elif DOB is "":
        valid5 = True
    else:
        valid5 = False

    if valid5 == False:
        messagebox.showerror("Incorrect", "Incorrect CustomerID")

def makeWindow():

    global CustomerIDVar, CustomerTitleVar, FirstNameVar, SurnameVar, DOBVar

    win = Tk()
    win.geometry("700x300")

    frame1 = Frame(win)
    frame1.pack(side = LEFT)

    Label(frame1, text = "Create Account", font = ("Helvetica 12 bold")).grid(row = 0, column = 0)

    Label(frame1, text="Customer ID").grid(row=1, column=0, sticky=W)
    CustomerIDVar = StringVar()
    CustomerID = Entry(frame1, textvariable = CustomerIDVar)
    CustomerID.grid(row=1,column=1,sticky=W)

    Label(frame1, text="Customer Title").grid(row=2, column=0, sticky=W)
    CustomerTitleVar = StringVar()
    CustomerTitle = Entry(frame1, textvariable = CustomerTitleVar)
    CustomerTitle.grid(row=2,column=1,sticky=W)

    Label(frame1, text="First Name").grid(row=3, column=0, sticky=W)
    FirstNameVar = StringVar()
    FirstName = Entry(frame1, textvariable = FirstNameVar)
    FirstName.grid(row=3,column=1,sticky=W)

    Label(frame1, text="Last Name").grid(row=4, column=0, sticky=W)
    SurnameVar=StringVar()
    Surname= Entry(frame1, textvariable=SurnameVar)
    Surname.grid(row=4,column=1,sticky=W)

    Label(frame1, text="Date Of Birth").grid(row=5, column=0, sticky=W)
    DOBVar=StringVar()
    DOB = Entry(frame1, textvariable=DOBVar)
    DOB.grid(row=5,column=1,sticky=W)

    frame2 = Frame(win)
    frame2.pack()

    b1= Button(frame2, text="Submit", command=saveCustomerDetails)
    b1.pack(side = LEFT)

    return win

win = makeWindow()
win.mainloop() 

1 Ответ

0 голосов
/ 11 декабря 2018

Вы определили кучу проверок, но не запустили функции.Например:

def saveCustomerDetails():
    CustomerIDSave = CustomerIDVar.get()
    CustomerIDSave = CustomerIDSave.ljust(25)
    checkID() #add this to execute the checkID function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...