显示意外行为的tkinter代码

时间:2017-03-23 18:59:14

标签: python tkinter

我遇到的问题是应该创建一个接口并有一些按钮的tkinter代码。 我对某些事情有误,但我似乎无法找到它们。

我的代码如下:

from tkinter import*
import random
import time;

root = Tk()
root.geometry("1600x800+0+0")
root.title("Restruant Managment System")

text_Input = StringVar()
operator = ""


Tops = Frame(root, width = 1600,height = 50,bg="powder blue", relief=SUNKEN)
Tops.pack(side=TOP)

f1 = Frame(root, width = 800,height = 700, relief=SUNKEN)
f1.pack(side=LEFT)

f2 = Frame(root, width = 300,height = 700,bg="powder blue", relief=SUNKEN)
f2.pack(side=RIGHT)
#===================Time============================
localtime=time.asctime(time.localtime(time.time()))
#======================Info=========================
lblInfo = Label(Tops, font=('SHOWCARD GOTHIC',50, 'bold'),text="Restruant managment system",fg="Steel Blue", bd=10, anchor='w')
lblInfo.grid(row=0,column=0)
lblInfo = Label(Tops, font=('SHOWCARD GOTHIC',20, 'bold'),text=localtime,fg="Steel Blue", bd=10, anchor='w')
lblInfo.grid(row=1,column=0)
#=========================Calculator==============
def btnClick(numbers):
    global operator
    operator = operator + str(numbers)
    text_Input.set(operator)

def btnClearDisplay():
    global operator
    operator=""
    text_Input.set("")

def btnEqualsInput():
    global operator
    sumup =str(eval(operator))
    text_Input.set(sumup)
    operator=""


def Ref():
    x = random.radient(10908, 500876)
    randomRef = str(x)
    rand.set(randomRef)

def qExit():
    root.destroy()

def Reset():
    rand.set("")
    Fries.set("")
    Burger.set("")
    Filet.set("")
    SubTotal.set("")
    Total.set("")
    Service_Charge.set("")
    Drinks.set("")
    Tax.set("")
    Cost.set("")
    Chicken_Burger.set("")
    Cheese_Burger.set("")



txtDisplay = Entry(f2,font=('SHOWCARD GOTHIC',20, 'bold'), textvariable=text_Input, bd=30, insertwidth=4,
                   bg="black", fg="white", justify='right')
txtDisplay.grid(columnspan=4)

#=====================================================================================================================
btn7=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="7", bg="powder blue", command=lambda: btnClick(7)).grid(row=2,column=0)

btn8=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="8", bg="powder blue", command=lambda: btnClick(8)).grid(row=2,column=1)

btn9=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="9", bg="powder blue", command=lambda: btnClick(9)).grid(row=2,column=2)

Addition=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="+", bg="powder blue", command=lambda: btnClick("+")).grid(row=2,column=3)
#=====================================================================================================================
btn4=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="4", bg="powder blue", command=lambda: btnClick(4)).grid(row=3,column=0)

btn5=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="5", bg="powder blue", command=lambda: btnClick(5)).grid(row=3,column=1)

btn6=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="6", bg="powder blue", command=lambda: btnClick(6)).grid(row=3,column=2)

Subtraction=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="-", bg="powder blue", command=lambda: btnClick("-")).grid(row=3,column=3)
#=====================================================================================================================
btn1=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="1", bg="powder blue", command=lambda: btnClick(1)).grid(row=4,column=0)

btn2=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="2", bg="powder blue", command=lambda: btnClick(2)).grid(row=4,column=1)

btn3=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="3", bg="powder blue", command=lambda: btnClick(3)).grid(row=4,column=2)

Multiply=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="*", bg="powder blue", command=lambda: btnClick("*")).grid(row=4,column=3)
#=====================================================================================================================
btn0=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="0", bg="powder blue", command=lambda: btnClick(0)).grid(row=5,column=0)

btnC=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="C", bg="powder blue", command=btnClearDisplay).grid(row=5,column=1)

btnEquals=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="=", bg="powder blue", command=btnEqualsInput).grid(row=5,column=2)

Divide=Button(f2,padx=16, pady=8,bd=8, fg="black", font=('arial',20,'bold'),
            text="/", bg="powder blue", command=lambda: btnClick("/")).grid(row=5,column=3)
#=====================================================================================================================
# restraunt menu
#Restraunt Information 1
rand =StringVar()
Fries =StringVar()
Burger =StringVar()
Filet =StringVar()
SubTotal =StringVar()
Total =StringVar()
Service_Charge =StringVar()
Drinks = StringVar()
Tax =StringVar()
Cost =StringVar()
Chicken_Burger =StringVar()
Cheese_Burger =StringVar()



lblReference = Label(f1,font=('arial', 16,'bold'), text="Reference", bd=16, anchor='w')
lblReference.grid(row=0,column=0)
txtRefernce=Entry(f1,font=('arial', 16,'bold'), textvarible=rand, bd=10, insertwidth=4,
                  bg="powder blue", justify='right')
txtRefernce.grid(row=0,column=1)


lblFries = Label(f1,font=('arial', 16,'bold'), text="Large Fries", bd=16, anchor='w')
lblFries.grid(row=1,column=0)
txtFries=Entry(f1,font=('arial', 16,'bold'), textvarible=Fries, bd=10, insertwidth=4,
                  bg="powder blue", justify='right')
txtFries.grid(row=1,column=1)


lblBurger = Label(f1,font=('arial', 16,'bold'), text="Burger Meal", bd=16, anchor='w')
lblBurger.grid(row=2,column=0)
txtBurger = Entry(f1,font=('arial', 16,'bold'), textvarible=Burger, bd=10, insertwidth=4,
                  bg="powder blue", justify='right')
txtBurger.grid(row=2,column=1)


lblFilet = Label(f1,font=('arial', 16,'bold'), text="Filet_o_meal", bd=16, anchor='w')
lblFilet.grid(row=3,column=0)
txtFilet=Entry(f1,font=('arial', 16,'bold'), textvarible=Filet, bd=10, insertwidth=4,
                  bg="powder blue", justify='right')
txtFilet.grid(row=3,column=1)



lblChicken = Label(f1,font=('arial', 16,'bold'), text="Chicken Meal", bd=16, anchor='w')
lblChicken.grid(row=4,column=0)
txtChicken = Entry(f1,font=('arial', 16,'bold'), textvarible=Chicken_Burger, bd=10, insertwidth=4,
                  bg="powder blue", justify='right')
txtChicken.grid(row=4,column=1)


lblCheese = Label(f1,font=('arial', 16,'bold'), text="Cheese Meal", bd=16, anchor='w')
lblCheese.grid(row=5,column=0)
txtCheese=Entry(f1,font=('arial', 16,'bold'), textvarible=Cheese_Burger, bd=10, insertwidth=4,
                  bg="powder blue", justify='right')
txtCheese.grid(row=5,column=1)
#==========================================================================================================

#restraunt information 2

lblDrinks = Label(f1,font=('arial', 16,'bold'), text="Drinks", bd=16, anchor='w')
lblDrinks.grid(row=0,column=2)
txtDrinks=Entry(f1,font=('arial', 16,'bold'), textvarible=rand, bd=10, insertwidth=4,
                  bg="#ffffff", justify='right')
txtDrinks.grid(row=0,column=3)


lblCost = Label(f1,font=('arial', 16,'bold'), text="Cost of Meal", bd=16, anchor='w')
lblCost.grid(row=1,column=2)
txtCost=Entry(f1,font=('arial', 16,'bold'), textvarible=Cost, bd=10, insertwidth=4,
                  bg="ffffff", justify='right')
txtCost.grid(row=1,column=3)


lblService = Label(f1,font=('arial', 16,'bold'), text="Service Charge", bd=16, anchor='w')
lblService.grid(row=2,column=2)
txtService = Entry(f1,font=('arial', 16,'bold'), textvarible=Service_Charge, bd=10, insertwidth=4,
                  bg="#ffffff", justify='right')
txtService.grid(row=2,column=3)


lblStateTax = Label(f1,font=('arial', 16,'bold'), text="State Tax", bd=16, anchor='w')
lblStateTax.grid(row=3,column=2)
txtStateTax=Entry(f1,font=('arial', 16,'bold'), textvarible=Tax, bd=10, insertwidth=4,
                  bg="#ffffff", justify='right')
txtStateTax.grid(row=3,column=3)



lblSubTotal = Label(f1,font=('arial', 16,'bold'), text="Sub Total", bd=16, anchor='w')
lblSubTotal.grid(row=4,column=2)
txtSubTotal = Entry(f1,font=('arial', 16,'bold'), textvarible=SubTotal, bd=10, insertwidth=4,
                  bg="#ffffff", justify='right')
txtSubTotal.grid(row=4,column=3)


lblTotalCost = Label(f1,font=('arial', 16,'bold'), text="Total Cost", bd=16, anchor='w')
lblTotalCost.grid(row=5,column=2)
txtTotalCost=Entry(f1,font=('arial', 16,'bold'), textvarible=Total, bd=10, insertwidth=4,
                  bg="#ffffff", justify='right')
txtTotalCost.grid(row=5,column=3)

#======================================Button==========================

btnTotal=Button(f1,padx=16,pady=8, bd=16, fg="Black",font=('arial', 16,'bold'), width=10,
                text="Total", bg="powder blue", command = Ref).grid(row=7, column=1)

btnTotal=Button(f1,padx=16,pady=8, bd=16, fg="Black",font=('arial', 16,'bold'), width=10,
                text="Reset", bg="powder blue", command = Reset).grid(row=7, column=2)

btnExit=Button(f1,padx=16,pady=8, bd=16, fg="Black",font=('arial', 16,'bold'), width=10,
                text="Exit", bg="powder blue", command = qExit).grid(row=7, column=3)

root.mainloop()

当运行此代码时,我有以下输出

============== RESTART: E:\Gui restraurant managment part 1.py ==============
    Traceback (most recent call last):
      File "E:\Gui restraurant managment part 1.py", line 143, in <module>
        bg="powder blue", justify='right')
      File "C:\Users\simon\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 2516, in __init__
        Widget.__init__(self, master, 'entry', cnf, kw)
      File "C:\Users\simon\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 2139, in __init__
        (widgetName, self._w) + extra + self._options(cnf))
    _tkinter.TclError: unknown option "-textvarible"
    >>> 

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

txtRefernce=Entry(f1,font=('arial', 16,'bold'),    
textvarible=rand, bd=10, 
insertwidth=4,bg="powder blue", justify='right')

您忘记了textvariable param中的A

txtRefernce=Entry(f1,font=('arial', 16,'bold'), 
textvariable=rand, bd=10, 
insertwidth=4,bg="powder blue", justify='right')

错误发生在-textvariable参数中 尝试更正此部分

另外在 195th 行中,您忘记了#颜色中的#ffffff

当我在这里纠正它时,它工作得很好。