Tableau périodique
: importation de la librairie tkinter à unifier + codes à améliorer
- tableau_periodique.py
#!/usr/bin/env python # -*- coding: utf-8 -*- # Programme sur le tableau périodique # MJ, Ba2 chimie 2010-2011 from tkinter import * from element_liste import * #sert à importer la liste présente dans l'autre fichier #création de la commande générale du boutton def elem(x): element=Tk() element.title("Proprietes") listbox=Listbox(element,height=10,width=40,fg="#070942") listbox.pack() #sert à ajuster la fenêtre listbox.insert(END) for item in tableau[x]: listbox.insert(END,item) quitter = Button(element,text='Quitter',command=element.destroy) quitter.pack(side=BOTTOM) mainloop() fen1=Tk() fen1.title("Tableau periodique") #création de la légende (site www.jchr.be/python/tkinter.htm) import tkinter sysdemenu=tkinter.Menu(fen1) def legende(): legend1= Tk() legend1.title("Légende") frame= Frame(legend1, height=200, width= 300) #frame ouvre une nouvelle fenêtre dans laquelle on peut insérer plusieurs widgets (ici des messages) autre = Message(legend1, text="Autres", width=300, font="Arial 15", bg="white") #font = taille et police autre.pack() metauxtransition= Message(legend1, text="Metaux de transition", width=300, font="Arial 15", bg="#FFCCCC") metauxtransition.pack() gazrare = Message(legend1, text="Gaz rares", width=300, font="Arial 15", bg="#00CCFF") gazrare.pack() nonmetaux= Message(legend1, text="Non metaux", width=300, font="Arial 15", bg="#00FF66") nonmetaux.pack() metauxalcalins= Message(legend1, text="Metaux alcalins", width=300, font="Arial 15", bg="#FF9900") metauxalcalins.pack() metauxalcalinoterreux= Message(legend1, text="Metaux alcalino terreux", width=300, font="Arial 15", bg="#FFFF33") metauxalcalinoterreux.pack() lanthanides= Message(legend1, text="Lanthanides", width=300, font="Arial 15", bg="#CCCC66") lanthanides.pack() actinides= Message(legend1, text="Actinides", width=300, font="Arial 15", bg="#FF3300") actinides.pack() metaux= Message(legend1, text="Metaux", width=300, font="Arial 15", bg="#9999FF") metaux.pack() frame.pack() mainloop() Menu=tkinter.Menu(sysdemenu) sysdemenu.add_cascade(label="Menu", menu=Menu) Menu.add_command(label="Legende", command = legende) Menu.add_command(label="Quitter", command=fen1.quit) #création des boutons du tableau bou_list=[] for item in tableau[1:]: bou=Button(fen1,text=item[1],command=lambda x=item[2]:elem(x),height=2,width=3,bg=item[6]) bou.grid(row=item[4],column=item[5]) #grid est utilisé pour classer les bouttons par rangée et colonne bou_list.append(bou) fen1.config(menu=sysdemenu) #création de la listbox au sommet (source:http://www.tkdocs.com/tutorial/grid.html) centre=Listbox(fen1) centre.grid(row=0,column=3,rowspan= 1,columnspan=8) centre.insert(END) for item in ["Nom:","Symbole:", "Numero atomique:","Masse molaire:","Ligne:","Colonne:","Couleur:"]: centre.insert(END,item) mainloop() fen1.destroy() fen1.mainloop()
Nécessite ce fichier de données :
- element_liste.py
tableau=[ ["Nom","symbole","Numero atomique","Masse atomique", "ligne","colonne","couleur"], ["Hydrogene","H",1, 1.00794,1,0,"white"], ["Helium", "He",2, 4.0026,1,17,"#00CCFF"], ["Lithium", "Li", 3, 6.9412,2,0,"#FF9900"], ["Beryllium","Be",4,9.012182,2,1,"#FFFF33"], ["Bore","B",5,10.811,2,12,"#00FF66"], ["Carbone","C",6,12.0107,2,13,"#00FF66"], ["Azote","N",7,14.00674,2,14,"#00FF66"], ["Oxygene","O",8,15.9994,2,15,"#00FF66"], ["Fluor","F",9,18.9984,2,16,"#00FF66"], ["Neon","Ne",10,20.1797,2,17,"#00CCFF"], ["Sodium","Na",11,22.9897,3,0,"#FF9900"], ["Magnesium","Mg",12,24.3050,3,1,"#FFFF33"], ["Aluminium","Al",13,26.9815,3,12,"#9999FF"], ["Silicium","Si",14,28.0855,3,13,"#00FF66"], ["Phosphore","P",15,30.973761,3,14,"#00FF66"], ["Soufre","S",16,32.066,3,15,"#00FF66"], ["Chlore","Cl",17,35.453,3,16,"#00FF66"], ["Argon","Ar",18,39.948,3,17,"#00CCFF"], ["Potassium","K",19,39.0963,4,0,"#FF9900"], ["Calcium","Ca",20,40.078,4,1,"#FFFF33"], ["Scandium","Sc",21,44.9559,4,2,"#FFCCCC"], ["Titane","Ti",22,47.867,4,3,"#FFCCCC"], ["Vanadium","V",23,50.9415,4,4,"#FFCCCC"], ["Chrome","Cr",24,51.9961,4,5,"#FFCCCC"], ["Manganese","Mn",25,54.9380,4,6,"#FFCCCC"], ["Fer","Fe",26,55.8457,4,7,"#FFCCCC"], ["Cobalt","Co",27,58.9332,4,8,"#FFCCCC"], ["Nickel","Ni",28,58.6934,4,9,"#FFCCCC"], ["Cuivre","Cu",29,63.546,4,10,"#FFCCCC"], ["Zinc","Zn",30,65.409,4,11,"#FFCCCC"], ["Gallium","Ga",31,69.723,4,12,"#9999FF"], ["Germanium","Ge",32,72.64,4,13,"#9999FF"], ["Arsenic","As",33,74.9216,4,14,"#00FF66"], ["Selenium","Se",34,78.96,4,15,"#00FF66"], ["Brome","Br",35,79.904,4,16,"#00FF66"], ["Krypton","Kr",36,83.798,4,17,"#00CCFF"], ["Rubidium","Rb",37,85.4678,5,0,"#FF9900"], ["Strontium","Sr",38,87.62,5,1,"#FFFF33"], ["Yttrium","Y",39,88.9059,5,2,"#FFCCCC"], ["Zirconium","Zr",40,91.224,5,3,"#FFCCCC"], ["Niobium","Nb",41,92.9063,5,4,"#FFCCCC"], ["Molybdene","Mo",42,95.94,5,5,"#FFCCCC"], ["Technetium","Tc",43,98,5,6,"#FFCCCC"], ["Ruthenium","Ru",44,101.07,5,7,"#FFCCCC"], ["Rhodium","Rh",45,102.9055,5,8,"#FFCCCC"], ["Palladium","Pd",46,106.42,5,9,"#FFCCCC"], ["Argent","Ag",47,107.8682,5,10,"#FFCCCC"], ["Cadmium","Cd",48,112.411,5,11,"#FFCCCC"], ["Indium","In",49,114.818,5,12,"#9999FF"], ["Etain","Sn",50,118.710,5,13,"#9999FF"], ["Antimoine","Sb",51,121.760,5,14,"#9999FF"], ["Tellure","Te",52,127.60,5,15,"#00FF66"], ["Iode","I",53,126.9045,5,16,"#00FF66"], ["Xenon","Xe",54,131.293,5,17,"#00CCFF"], ["Cesium","Cs",55,132.9054,6,0,"#FF9900"], ["Baryum","Ba",56,137.327,6,1,"#FFFF33"], ["Lanthane","La",57,138.9055,6,2,"#FFCCCC"], ["Cerium","Ce",58,140.116,8,4,"#CCCC66"], ["Praseodyme","Pr",59,140.9076,8,5,"#CCCC66"], ["Neodyme","Nd",60,144.24,8,6,"#CCCC66"], ["Promethium","Pm",61,145,8,7,"#CCCC66"], ["Samarium","Sm",62,150.36,8,8,"#CCCC66"], ["Europium","Eu",63,151.964,8,9,"#CCCC66"], ["Gadolinium","Gd",64,157.25,8,10,"#CCCC66"], ["Terbium","Tb",65,158.9253,8,11,"#CCCC66"], ["Dysprosium","Dy",66,162.500,8,12,"#CCCC66"], ["Holmium","Ho",67,164.9303,8,13,"#CCCC66"], ["Erbium","Er",68,167.259,8,14,"#CCCC66"], ["Thulium","Tm",69,168.9342,8,15,"#CCCC66"], ["Ytterbium","Yb",70,173.04,8,16,"#CCCC66"], ["Lutecium","Lu",71,174.967,8,17,"#CCCC66"], ["Hafnium","Hf",72,178.49,6,3,"#FFCCCC"], ["Tantale","Ta",73,180.9479,6,4,"#FFCCCC"], ["Tungstene","W",74,183.84,6,5,"#FFCCCC"], ["Rhenium","Re",75,186.207,6,6,"#FFCCCC"], ["Osmium","Os",76,190.23,6,7,"#FFCCCC"], ["Iridium","Ir",77,192.217,6,8,"#FFCCCC"], ["Platine","Pt",78,195.078,6,9,"#FFCCCC"], ["Or","Au",79,166.9665,6,10,"#FFCCCC"], ["Mercure","Hg",80,200.59,6,11,"#FFCCCC"], ["Thallium","Tl",81,204.3833,6,12,"#9999FF"], ["Plomb","Pb",82,207.2,6,13,"#9999FF"], ["Bismuth","Bi",83,208.9803,6,14,"#9999FF"], ["Polonium","Po",84,209,6,15,"#9999FF"], ["Astate","At",85,210,6,16,"#00FF66"], ["Radon","Rd",86,222,6,17,"#00CCFF"], ["Francium","Fr",87,223,7,0,"#FF9900"], ["Radium","Ra",88,226,7,1,"#FFFF33"], ["Actinium","Ac",89,227,7,2,"#FFCCCC"], ["Thorium","Th",90,232.0381,9,4,"#FF3300"], ["Protactinium","Pa",91,231.0359,9,5,"#FF3300"], ["Uranium","U",92,238.02891,9,6,"#FF3300"], ["Neptunium","Np",93,237,9,7,"#FF3300"], ["Plutonium","Pu",94,244,9,8,"#FF3300"], ["Americium","Am",95,243,9,9,"#FF3300"], ["Curium","Cm",96,247,9,10,"#FF3300"], ["Berkelium","Bk",97,247,9,11,"#FF3300"], ["Californium","Cf",98,251,9,12,"#FF3300"], ["Einsteinium","Es",99,252,9,13,"#FF3300"], ["Fermium","Fm",100,257,9,14,"#FF3300"], ["Mendelevium","Md",101,258,9,15,"#FF3300"], ["Nobelium","No",102,259,9,16,"#FF3300"], ["Lawrencium","Lr",103,262,9,17,"#FF3300"], ["Rutherfordium","Rf",104,261,7,3,"#FFCCCC"], ["Dubnium","Db",105,262,7,4,"#FFCCCC"], ["Seaborgium","Sg",106,266,7,5,"#FFCCCC"], ["Bohrium","Bh",107,264,7,6,"#FFCCCC"], ["Hassium","Hs",108,269,7,7,"#FFCCCC"], ["Meitneium","Mt",109,268,7,8,"#FFCCCC"], ["Darmstadtium","Ds",110,271,7,9,"#FFCCCC"], ["Roentgenium","Rg",111,272,7,10,"#FFCCCC"], ["Copernicium","Cn",112,285,7,11,"#FFCCCC"], ["Ununtrium","Uut",113,184,7,12,"#9999FF"], ["Ununquadium","Uuq",114,289,7,13,"#9999FF"], ["Ununpentium","Uup",115,288,7,14,"#9999FF"], ["Ununhexium","Uuh",116,292,7,15,"#9999FF"], ["Ununseptium","Uus",117,"-",7,16,"white"], ["Ununoctium","Uuo",118,"-",7,17,"white"] ]