Это мой первый пост, поэтому, пожалуйста, наберитесь терпения
У меня есть школьное задание на создание приложения для расходных материалов и я нарисовал бланк, почему мои значения шкалы tkinter не сохраняются в файл.
Информация о клиенте и код кнопки отправки работают должным образом (сохраняется в файл = info.txt). Закладка заказа не работает должным образом = не добавляет файл info.txt с указанными c количествами заказанные расходные материалы
Вот мой код
#def mainmenu():
from tkinter import *
from tkinter import ttk
import re
NON_ALPHA_RE = re.compile('[^A-Z0-9]+')
POSTCODE_RE = re.compile('^[A-Z]{1,2}[0-9]{1,2}[A-Z]? [0-9][A-Z]{2}$')
def normalise_postcode(eZIP_Postalcode):
eZIP_Postalcode = NON_ALPHA_RE.sub('', eZIP_Postalcode.upper())
eZIP_Postalcode = eZIP_Postalcode[:-3] + ' ' + eZIP_Postalcode[-3:]
if POSTCODE_RE.match(eZIP_Postalcode):
return eZIP_Postalcode
return None
def submit() :
invalidtext_1.set("")
invalidtext_2.set("")
invalidtext_3.set("")
invalidtext_4.set("")
invalidtext_5.set("")
eName =Name.get()
eSurname =Surname.get()
ecountry =country.get()
ecity =city.get()
eAddressLine1 = AddressLine1.get()
eAddressLine2 = AddressLine2.get()
eState_Province_Region = State_Province_Region.get()
eZIP_Postalcode = ZIP_Postalcode.get()
valid = True
if eName.isalpha() == False:
invalidtext_1.set("Invalid forename. Please use letters only.")
valid = False
if eSurname.isalpha() == False:
invalidtext_2.set("Invalid surname. Please use letters only.")
valid = False
if ecountry.isalpha() == False:
invalidtext_3.set("Invalid country name. Please use letters only.")
valid = False
if ecity.isalpha() == False:
invalidtext_4.set("Invalid city name. Please use letters only.")
valid = False
if eZIP_Postalcode != normalise_postcode(eZIP_Postalcode):
invalidtext_5.set("Please enter a valid postcode.")
valid = False
if valid == False:
return
else:
eName = eName.ljust(150)
eSurname = eSurname.ljust(150)
ecountry = ecountry.ljust(150)
ecity = ecity.ljust(150)
eAddressLine1 = eAddressLine1.ljust(150)
eAddressLine2 = eAddressLine2.ljust(150)
eState_Province_Region = eState_Province_Region.ljust(150)
eZIP_Postalcode = eZIP_Postalcode.ljust(150)
fileObject = open("Info.txt","a")
fileObject.write(eName +"\n" + eSurname +"\n" + ecountry +"\n" + ecity +"\n" + eAddressLine1 +"\n" + eAddressLine2 +"\n" + eState_Province_Region +"\n" + eZIP_Postalcode +"\n")
fileObject.close()
return
def submitNumber():
Paint=Paint.get()
Paper=Paper.get()
PaintBrush =PaintBrush.get()
Easles=Easles.get()
Pencils=Pencils.get()
Paint = Paint.ljust(150)
Paper = Paper.ljust(150)
PaintBrush = PaintBrush.ljust(150)
Easles = Easles.ljust(150)
Pencils = Pencils.ljust(150)
fileObject = open("Info.txt","a")
fileObject.write(paint + paper + paintbrush + Easles + pencils +"\n")
fileObject.close()
def mainWindow():
global Name, invalidtext_1, frame1, invalidtext_2,Surname,city,country,invalidtext_3,invalidtext_4,AddressLine1,AddressLine2,State_Province_Region,ZIP_Postalcode,invalidtext_5
window=Tk()
window.title("Artist Products")
window.configure(background = "#800000")
window.resizable(width=True, height=True)
# DON'T NEED window.geometry("500x300") #Width x Height
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
#Tab 1 (as in the number 1!)
tab_control.add(tab1, text='Customer details')
Label (tab1, text="Name:" , bg="#800", fg="white", font="futuran 12").grid(row=1, column=0)
Name=StringVar()
eName=Entry(tab1, textvariable=Name)
eName.grid(row=1, column=1)
invalidtext_1=StringVar()
invalid_1= Label(tab1, textvariable=invalidtext_1, font="Helvetica 12 ", fg="red")
invalid_1.grid(row=1,column=2, sticky=W)
Label (tab1, text="Surname:" , bg="#800", fg="white", font="futuran 12").grid(row=2, column=0)
Surname=StringVar()
eSurname=Entry(tab1, textvariable=Surname)
eSurname.grid(row=2, column=1)
invalidtext_2=StringVar()
invalid_2= Label(tab1, textvariable=invalidtext_2, font="Helvetica 12 ", fg="red")
invalid_2.grid(row=2,column=2, sticky=W)
Label (tab1, text="Adress Line 1:" , bg="#800", fg="white", font="futuran 12").grid(row=3, column=0)
AddressLine1=StringVar()
eAddressLine1=Entry(tab1, textvariable=AddressLine1)
eAddressLine1.grid(row=3, column=1)
Label (tab1, text="Adress Line 2:" , bg="#800", fg="white", font="futuran 12").grid(row=4, column=0)
AddressLine2=StringVar()
eAddressLine2=Entry(tab1, textvariable=AddressLine2)
eAddressLine2.grid(row=4, column=1)
Label (tab1, text="State/province/region:" , bg="#800", fg="white", font="futuran 12").grid(row=5, column=0)
State_Province_Region=StringVar()
eState_Province_Region=Entry(tab1, textvariable=State_Province_Region)
eState_Province_Region.grid(row=5, column=1)
Label (tab1, text="ZIP/postal code:" , bg="#800", fg="white", font="futuran 12").grid(row=6, column=0)
ZIP_Postalcode=StringVar()
eZIP_Postalcode=Entry(tab1, textvariable=ZIP_Postalcode)
eZIP_Postalcode.grid(row=6, column=1)
invalidtext_5=StringVar()
invalid_5= Label(tab1, textvariable=invalidtext_5, font="Helvetica 12 ", fg="red")
invalid_5.grid(row=6,column=2, sticky=W)
Label (tab1, text="Country name:" , bg="#800", fg="white", font="futuran 12").grid(row=7, column=0)
country=StringVar()
ecountry=Entry(tab1, textvariable=country)
ecountry.grid(row=7, column=1)
invalidtext_3=StringVar()
invalid_3= Label(tab1, textvariable=invalidtext_3, font="Helvetica 12 ", fg="red")
invalid_3.grid(row=7,column=2, sticky=W)
Label (tab1, text="City:" , bg="#800", fg="white", font="futuran 12").grid(row=8, column=0)
city=StringVar()
ecity=Entry(tab1, textvariable=city)
ecity.grid(row=8, column=1)
invalidtext_4=StringVar()
invalid_4= Label(tab1, textvariable=invalidtext_4, font="Helvetica 12 ", fg="red")
invalid_4.grid(row=8,column=2, sticky=W)
####Tab 2
tab2 = ttk.Frame(tab_control)
tab_control.add(tab2, text='View All Products')
Label (tab2, text='Paper(50 pages non lined):£3',bg="#800", fg="white", font="futuran 12").grid(row=1, column=0)
Paper = Scale(tab2, from_=0, to=100, orient=HORIZONTAL)
Paper.grid(row=1, column=1)
Label (tab2, text='Paint (acrylic):£6' ,bg="#800", fg="white", font="futuran 12").grid(row=2, column=0)
Paint = Scale(tab2, from_=0, to=100, orient=HORIZONTAL)
Paint.grid(row=2, column=1)
Label (tab2, text='Paint brush:£4' ,bg="#800", fg="white", font="futuran 12").grid(row=3, column=0)
PaintBrush = Scale(tab2, from_=0, to=100, orient=HORIZONTAL)
PaintBrush.grid(row=3, column=1)
Label (tab2, text='Easels:£6' ,bg="#800", fg="white", font="futuran 12").grid(row=4, column=0)
Easels = Scale(tab2, from_=0, to=100, orient=HORIZONTAL)
Easels.grid(row=4, column=1)
Label (tab2, text='Pencils:£4.50' ,bg="#800", fg="white", font="futuran 12").grid(row=5, column=0)
Pencils = Scale(tab2, from_=0, to=100, orient=HORIZONTAL)
Pencils.grid(row=5, column=1)
#Tab 3
tab3 = ttk.Frame(tab_control)
tab_control.add(tab3, text='Invoices')
tab_control.grid(row=1, column=1)
#Tab 4
tab4 = ttk.Frame(tab_control)
tab_control.add(tab4, text='Basket')
tab_control.grid(row=1, column=1)
Label (tab4, text="Basket",bg="#800", fg="white", font="futuran 12").grid(row=1, column=0)
#Tab 5
tab5 = ttk.Frame(tab_control)
tab_control.add(tab5, text='Orders')
tab_control.grid(row=1, column=1)
#buttons
b6=Button(tab1, text="Close",command=quit, width=10)
b6.grid(row=12, column=0)
b6=Button(tab2, text="Close",command=quit, width=10)
b6.grid(row=12, column=0)
b6=Button(tab3, text="Close",command=quit, width=10)
b6.grid(row=12, column=0)
b6=Button(tab4, text="Close",command=quit, width=10)
b6.grid(row=12, column=0)
b6=Button(tab5, text="Close",command=quit, width=10)
b6.grid(row=12, column=0)
b18= Button(tab1, text=" Submit ",command=submit,width=10)
b18.grid(row=12, column=1)
b17= Button(tab2, text=" Submit ",command=submit,width=10)
b17.grid(row=12, column=1)
frame2 = Frame(window)
frame2.grid()
return window
window = mainWindow()
window.mainloop()
mainWindow()
Я также пытался получить кнопку отправки сведений о клиенте, чтобы сохранить ее в файл, а затем закрыть вкладку сведений о клиенте или, по крайней мере, переместить акцент на вкладке «Просмотр всех продуктов» (чтобы пользователь мог сосредоточиться на своем заказе).
Справка!