如何更改变量中包含的值,例如使用百分比



下面的代码应该是企业的库存管理系统,因此用户能够更改在企业内停留太久的商品的价格(无法出售(

from tkinter import*
from tkinter import Tk, StringVar, ttk
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
import random
import datetime
import time;
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
start = Tk()
start.geometry("100x600+0+0")
start.title ("R.E.D Inventory Control System")

#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
Heading = Frame(start, width = 1000, height = 100, bd = 10, relief = 'raise')
Heading.pack(side = TOP)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
LowerHeading = Frame(start, width = 500, height  = 100, bd = 20, relief = 'raise')
LowerHeading.pack(side = BOTTOM)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
LMiddle = Frame(start, width = 500, height = 1000, bd = 12, relief = 'raise')
LMiddle.pack(side = LEFT)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
RMiddle = Frame(start, width = 500, height = 1000, bd = 12, relief = 'raise')
RMiddle.pack(side=RIGHT)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
Title = Label(Heading, font=('arial',40,'bold'), text = "R.E.D Inventory Control System", bd = 10, width = 40, anchor = 'w')
          #justify = 'center')
Title.grid(row=0,column=0)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
info1=StringVar()
info2=StringVar()
info3=StringVar()
info4=StringVar()
info5=StringVar()
info6=StringVar()
info7=StringVar()
info8=StringVar()

info1.set("")
info2.set("")
info3.set("")
info4.set("")
info5.set("")
info6.set("")
info7.set("")
info8.set("")
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
def Product(event):
    if (info1.get()=="ID01"):
        info2.set("Dress")
        info3.set("03/08/2016")
        info4.set("£8")
        info5.set("74")
        info6.set("Spring")
        if (info7.get()=="10%"):
                Calculation=info4/0.1
                info8.set(Calculation)

1( 上面的代码不起作用,因为当用户在 GUI 上单击"10%"时,新的价格变量应该会相应地更改。不仅对于 10%,而且对于其他值也是如此。

    elif (info1.get()=="ID02"):
        info2.set("Shoes")
        info3.set("25/03/2017")
        info4.set("£4")
        info5.set("24")
        info6.set("Spring")
        if (info7.get()=="10%"):
                Calculation=info4/0.1
                info8.set(Calculation)
    elif (info1.get()=="ID03"):
        info2.set("Belt")
        info3.set("16/08/2017")
        info4.set("£1.50")
        info5.set("36")
        info6.set("Spring")
        if (info7.get()=="10%"):
                Calculation=info4/0.1
                info8.set(Calculation)
    elif (info1.get()=="ID04"):
        info2.set("Blazer")
        info3.set("18/05/2016")
        info4.set("£18")
        info5.set("96")
        info6.set("Spring")
        if (info7.get()=="10%"):
                Calculation=info4/0.1
                info8.set(Calculation)
    elif (info1.get()=="ID05"):
        info2.set("Skirt")
        info3.set("27/06/2017")
        info4.set("£5")
        info5.set("47")
        info6.set("Spring")
        if (info7.get()=="10%"):
                Calculation=info4/0.1
                info8.set(Calculation)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
ProductID = Label(LMiddle, font=('arial',12,'bold'),text = "Product ID", bd = 10, width = 15, anchor = 'w')
ProductID.grid(row=0,column=0)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
ProductsID = ttk.Combobox(LMiddle, textvariable = info1 ,state='readonly', font=('arial',12,'bold'),  width =20)
ProductsID['value']=('','ID01','ID02','ID03','ID04','ID05')
ProductsID.current(0)
ProductsID.grid(row=0,column=1)
ProductsID.bind("<<ComboboxSelected>>", Product)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
Description1 = Label(LMiddle, font=('arial',12,'bold'),text ="Description", bd = 10, width = 15, anchor = 'w')
Description1.grid(row=2,column=0)
Description2 = Label(LMiddle, font=('arial',12,'bold'), textvariable = info2, bd = 10, width = 18, relief = 'sunken')
Description2.grid(row=2,column=1)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
DateStockBought1 = Label(LMiddle, font=('arial',12,'bold'), text ="Date Stock Bought", bd = 10, width = 15, anchor = 'w')
DateStockBought1.grid(row=3,column=0)
DateStockBought2 = Label(LMiddle, font=('arial',12,'bold'), textvariable = info3, bd = 10, width = 18, relief = 'sunken')
DateStockBought2.grid(row=3,column=1)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
Price1 = Label(LMiddle, font=('arial',12,'bold'), text ="Price", bd = 10, width = 15, anchor = 'w')
Price1.grid(row=4,column=0)
Price2 = Label(LMiddle, font=('arial',12,'bold'), textvariable = info4, bd = 10, width = 18, relief = 'sunken')
Price2.grid(row=4,column=1)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
AmountLeft1 = Label(RMiddle, font=('arial',12,'bold'), text ="Amount Left", bd = 10, width = 15, anchor = 'w')
AmountLeft1.grid(row=1,column=0)
AmountLeft2 = Label(RMiddle, font=('arial',12,'bold'), textvariable = info5,bd = 10, width = 18, relief = 'sunken')
AmountLeft2.grid(row=1,column=1)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
CurrentSeason1 = Label(RMiddle, font=('arial',12,'bold'), text ="CurrentSeason", bd = 10, width = 15, anchor = 'w')
CurrentSeason1.grid(row=2,column=0)
CurrentSeason2 = Label(RMiddle, font=('arial',12,'bold'), textvariable = info6, bd = 10, width = 18, relief = 'sunken')
CurrentSeason2.grid(row=2,column=1)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
Discount1 = Label(RMiddle, font=('arial',12,'bold'),text = "Discount", bd = 10, width = 15, anchor = 'w')
Discount1.grid(row=3,column=0)
Discount1 = ttk.Combobox(RMiddle , textvariable=info7, state='readonly', font=('arial',12,'bold'),  width =20)
Discount1['value']=('','10%','20%','30%','40%','50%')
Discount1.current(0)
Discount1.grid(row=3,column=1)
Discount1.bind("<<ComboboxSelected>>", Product)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
NewPrice1 = Label(RMiddle, font=('arial',12,'bold'), text ="New Price", bd = 10, width = 15, anchor = 'w')
NewPrice1.grid(row=4,column=0)
NewPrice2 = Label(RMiddle, font=('arial',12,'bold'),textvariable = info8, bd = 10, width = 18, relief = 'sunken')
NewPrice2.grid(row=4,column=1)
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
LH=Label(LowerHeading, font=('arial',12,'bold'), text ="Update", bd = 10, width = 15, anchor = 'w')
LH.grid(row=1,column=0)

2( 如何将所有信息放入 csv 文件中?那么用户可以改变产品的价格吗?

#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
start.mainloop()

Sholudn't Computing不是字符串吗?当您执行以下操作时:

Calculation=info4/0.1

你正在将一个字符串变量除以 0.1。您应该转换为数字,进行数学运算,然后再次转换为字符串

实际上,我建议不要在数值字段上使用"£"或"$"或"%",也不要使用StringValue((来表示显然不打算存储字符串的值(如果你想对它做数学运算,那么它不是字符串(

至于csv文件,请检查Python自己的csv模块。

此处的快速示例

import csv
with open('eggs.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

最新更新