Après avoir appris la programmation avec python, mon préféré était le ** traitement des boutons avec tkinter **. Quand je me demandais ce qui pouvait faire une grande partie de ce traitement des boutons, la calculatrice est sortie en premier.
final_python.py
from tkinter import *
#Création de fenêtre
root = Tk()
#Spécification de la taille de la fenêtre
root.geometry("500x500")
#Création de titre de fenêtre
root.title("Machine arithmétique à quatre règles")
#Cliché
root.mainloop()
final_python.py
#Fonction C
def clear():
textVal = expression.get()
if len(textVal) > 1:
expression.set(textVal[:-1])
else:
expression.set("")
#Fonction AC
def all_clear():
expression.set("")
--Rôle de C et AC
C | Effacer caractère par caractère |
---|---|
AC | Effacer tous les caractères |
final_python.py
buttons = (
(("C", clear ), ("AC", all_clear), ("%", op("%") ), ("+", op("+"))),
(("7", digit(7)), ("8", digit(8) ), ("9", digit(9)), ("/", op("/"))),
(("4", digit(4)), ("5", digit(5) ), ("6", digit(6)), ("*", op("*"))),
(("1", digit(1)), ("2", digit(2) ), ("3", digit(3)), ("-", op("-"))),
(("0", digit(1)), (None, None ), ('.', op('.') ), ("=", calculate)),
)
Puisque j'annonçais la tâche finale cette fois, je voulais expliquer toutes les fonctions, mais comme chaque personne a un temps limité de 2 minutes, j'ai réduit les points afin qu'il puisse être conservé dans les 2 minutes. Le code source est collé à la fin, alors jetez-y un œil ...
final_python.py
# coding:utf-8
from tkinter import *
#Étalage
root = Tk()
#Spécification de la taille de la fenêtre
root.geometry("500x500")
#Création de titre de fenêtre
root.title("Machine arithmétique à quatre règles")
expression = StringVar()
#Fonction C
def clear():
textVal = expression.get()
if len(textVal) > 1:
expression.set(textVal[:-1])
else:
expression.set("")
#Fonction AC
def all_clear():
expression.set("")
#Bouton numérique
def digit(number):
def func():
expression.set(expression.get() + str(number))
return func
#Bouton Calculer
def op(label):
def func():
expression.set(expression.get() + label)
return func
#=Fonction de
def calculate():
try:
expression.set(eval(expression.get()))
except SyntaxError:
expression.set("SyntaxError")
except ZeroDivisionError:
expression.set("ZeroDivisionError")
except NameError:
expression.set("NameError")
buttons = (
(("C", clear ), ("AC", all_clear), ("%", op("%") ), ("+", op("+"))),
(("7", digit(7)), ("8", digit(8) ), ("9", digit(9)), ("/", op("/"))),
(("4", digit(4)), ("5", digit(5) ), ("6", digit(6)), ("*", op("*"))),
(("1", digit(1)), ("2", digit(2) ), ("3", digit(3)), ("-", op("-"))),
(("0", digit(1)), (None, None ), ('.', op('.') ), ("=", calculate)),
)
#Écran d'affichage
e = Label(root, textvariable=expression, fg="#ffffff", bg="#000000", anchor=E, height=2)
e.grid(row=0, column=0, columnspan=4, sticky="EW")
for row, btns in enumerate(buttons, 1):
for col, (label, func) in enumerate(btns):
if label:
b = Button(root, text=label, command=func, width=10, height=5)
b.grid(row=row, column=col)
#Cliché
root.mainloop()
Presque presque le code source était basé sur Calculatrice faite avec Tkinter, mais la largeur de la fenêtre, la taille de la calculatrice elle-même et la fonction de C Certaines parties devaient être améliorées, donc je suis content d'avoir pu le faire moi-même. C'était aussi bien de pouvoir comprendre la signification de chaque commande. Je veux me concentrer sur la programmation pendant les vacances d'été.
La classe d'introduction de python la plus simple Fumitaka Osawa [Auteur]
Recommended Posts