试图从tkInter刻度保存值

问题描述 投票:1回答:1

这是我的第一篇文章,请耐心等待

我有一个学校作业来创建美术用品应用程序,并且我画了一个空白,为什么我的tkinter比例值未保存到文件中。

客户详细信息和提交按钮代码按预期工作(保存到文件= info.txt)“订购”标签页无法正常工作=未在info.txt中附加订购的特定数量的美术用品

这是我的代码

#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()

我还尝试过将客户详细信息提交按钮保存到文件中,然后关闭客户详细信息标签,或者至少将焦点移至“查看所有产品”标签(以便用户可以专注于他们的订单)。

帮助!

这是我的第一篇文章,所以请耐心等待,我有一个学校作业来创建美术用品应用程序,并且我画了一个空白,为什么我的tkinter比例值未保存到文件中。 ...

python python-3.x tkinter
1个回答
0
投票

看来您的问题是变量名之一。您正在用调用的结果破坏scale对象,但是随后您写了我认为是您打算分配的变量。例如

© www.soinside.com 2019 - 2024. All rights reserved.