1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| root = Tk()
donnee = Entry(root, width=26, bg="light blue")
for ev, cmd in (("<Return>", lambda e: donnee.insert(END, " = " + str(eval(donnee.get())))),
("<KP_Enter>", lambda e: donnee.insert(END, " = " + str(eval(donnee.get())))),
("<Delete>", lambda e: donnee.delete(0, END))):
donnee.bind(ev, cmd)
donnee.grid(row=0, column=0, columnspan=4, sticky=EW, pady=5) or donnee.focus()
for txt, cmd, x, y in (("Calcul", lambda: donnee.insert(END, " = " + str(eval(donnee.get()))), 1, 0),
("Clean", lambda: donnee.delete(0, END), 1, 1),
("Quit", root.destroy, 1, 3),
("1", lambda: donnee.insert(END, "1"), 2, 0),
("2", lambda: donnee.insert(END, "2"), 2, 1),
("3", lambda: donnee.insert(END, "3"), 2, 2),
("4", lambda: donnee.insert(END, "4"), 2, 3),
("5", lambda: donnee.insert(END, "5"), 3, 0),
("6", lambda: donnee.insert(END, "6"), 3, 1),
("7", lambda: donnee.insert(END, "7"), 3, 2),
("8", lambda: donnee.insert(END, "8"), 3, 3),
("9", lambda: donnee.insert(END, "9"), 4, 0),
("0", lambda: donnee.insert(END, "0"), 4, 1),
(".", lambda: donnee.insert(END, "."), 4, 2),
("EXP", lambda: donnee.insert(END, "**"), 4, 3),
("+", lambda: donnee.insert(END, "+"), 5, 0),
("-", lambda: donnee.insert(END, "-"), 5, 1),
("*", lambda: donnee.insert(END, "*"), 5, 2),
("/", lambda: donnee.insert(END, "/"), 5, 3)):
Button(root, width=4, text=txt, bg="light grey", command=cmd).grid(row=x, column=y)
root.update()
root.geometry("%dx%d+%d+%d" % (root.winfo_reqwidth(), root.winfo_reqheight(),
root.winfo_screenwidth()/2 - root.winfo_reqwidth()/2,
root.winfo_screenheight()/2 - root.winfo_reqheight()/2))
root.title("Calcul") or root.resizable(width=0, height=0)
root.mainloop() |