Tableau périodique

Tableau avec éléments cliquables pour obtenir les information. Nécessite ce fichier de données.

: tableau_periodique_cliquable.py
#!/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