====== Tableau périodique ====== Tableau avec éléments cliquables pour obtenir les information. Nécessite {{:teaching:progappchim:elements-data3.csv|ce fichier de données}}. #!/usr/bin/env python # -*- coding: utf-8 -*- # version un peu aménagée du travail de TD et SD, ba2 chimie 2012-2013 def elem(x): # print type(x),x # pour montrer que x est une chaîne de caractères element=Tk() element.title("Propriété du"+ x ) elembox=Listbox(element,height=32,width=40,fg="#070942") elembox.pack() for item in table[int(x)]: elembox.insert(END,item) quitter = Button(element,text='Quitter',command=element.destroy) quitter.pack(side=BOTTOM) from tkinter import * import csv tableau=open("elements-data3.csv","r") reader = csv.reader(tableau,delimiter=";") table=[] # initialisation d'une liste qui contiendra les lignes à écrire for row in reader: # on parcourt les lignes successives du fichier d'entrée table.append(row) jack=dict() jack["Autres éléments non métalliques"]="yellow" jack["Métaux alcalins"]="green" jack["Métaux alcalino-terreux"]="orange" jack["Métaux de transition"]="pink" jack["Autres métaux"]="purple" jack["Halogènes"]="blue" jack["Gaz rares"]="red" jack["Lanthanides"]="brown" jack["Actinides"]="white" fen1=Tk() fen1.title("Tableau périodique des éléments") # défini le nom de la fenêtre for item in table[1:]: bou=Button(fen1,text=item[0],command=lambda x=item[4] :elem(x),height=3,width=5,bg=jack[item[31]] ) bou.grid(row=item[29],column=item[30]) fen2=Tk() fen2.title("Tableau des types de données") datatypebox=Listbox(fen2,height=32,width=40,fg="#070942") datatypebox.pack() for item in table[0]: datatypebox.insert(END,item) mainloop() fen2 fen1 ===== Références ===== * ...