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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
| ###-------------------------------------------------------------------------------
###-------------------------------------------------------------------------------
#!/usr/bin/python
# -*- coding: utf-8 -*-
### -*- coding: iso-8859-1 -*-
import sys
import os
import csv
import Tkinter
from Tkinter import *
import tkFileDialog
from tkFileDialog import *
from types import *
class simpleapp_tk(Tkinter.Tk):
#variables de la classe
initDirectory=u"C:/"
globalvaluelabel=u"valuelabel"
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent=parent
self.grid()
self.initialize()
#Fonction d'Initialisation de la classe
def initialize(self):
self.InitIHM()
self.InitFilesPath()
def InitIHM(self):
self.InitArrays()
self.InitButtons()
self.InitRadioButtons()
self.InitLabels()
##self.grid_columnconfigure(1,weight=1)
self.grid_columnconfigure(2,weight=1)
self.resizable(True,False)
def InitArrays(self):
self.MODESLIST=[
(1,u"choix1",),
(2,u"choix2"),
(3,u"choix3"),
]
self.BUTTONSLIST=[
(1,True,u"OnButtonClickFile",u"boutonfichier1"),
(2,True,u"OnButtonClickFile",u"boutonfichier2"),
(3,True,u"OnButtonClickFile",u"boutonfichier3"),
(4,True,u"OnButtonClickFile",u"boutonfichier4"),
(5,True,u"OnButtonClickFile",u"boutonfichier5"),
(6,True,u"OnButtonClickDirectory",u"boutondossier1"),
(7,True,u"OnButtonClickDirectory",u"boutondossier2"),
(8,False,u"Executer",u"Executer")
,]
self.LABELSLIST=[
(1,"e","white","blue",1),
(2,"e","white","blue",1),
(3,"e","white","blue",1),
(4,"e","white","blue",1),
(5,"e","white","blue",1),
(6,"e","white","blue",1),
(7,"e","white","blue",1)
,]
self.BUTTONS=[]
self.LABELS=[]
self.FILES={}
def InitFilesPath(self):
pos=-1
if len(sys.argv)>1:
for arg in sys.argv[1:8]:
pos=pos+1
self.LABELS[pos].set(arg)
#Fonction d'ajout de tous les boutons de l'IHM
def InitButtons(self):
for pos,hasargs,cmd,texte in self.BUTTONSLIST:
button=None
##Vérification si il y a des arguments à attacher aux boutons
if hasargs==True:
fnc=getattr(self,cmd)(texte,pos)
button=self.AddButton(nomcommande=lambda x=pos,y=texte:(fnc),texte=texte,poscol=0,posrow=pos)
else:
fnc=getattr(self,cmd)()
button=self.AddButton(nomcommande=lambda :(fnc),texte=texte,poscol=0,posrow=pos)
self.BUTTONS.append(button)
#Fonction d'ajout de tous les Radioboutons de l'IHM
def InitRadioButtons(self):
self.valueradiobutton=IntVar()
for mode,texte in self.MODESLIST:
radiobutton=self.AddRadioButton(nomcommande=self.Selection,valeur=self.valueradiobutton,texte=texte,select=mode,poscol=3,posrow=mode)
#Fonction d'ajout de tous les boutons de l'IHM
def InitLabels(self):
for pos,ancrage,color1,color2,columnspan in self.LABELSLIST:
va = StringVar()
etiquette=None
etiquette=self.AddLabel(nomlabel=va,lanchor=ancrage,lfg=color1,lbg=color2,poscol=2,posrow=pos,colspan=columnspan)
self.LABELS.append(va)
#Fonction permettant de créer un Bouton
def AddButton(self,nomcommande,texte=u"Button",poscol=0,posrow=0):
# Creation d'un nouveau bouton.
bouton = Tkinter.Button(self,text=texte,width=25,command=nomcommande)
bouton.grid(column=poscol,row=posrow)
return bouton
#Fonction permettant de créer un RadioBouton
def AddRadioButton(self,nomcommande,valeur,texte=u"RadioButton",select=0,poscol=0,posrow=0):
radiobouton=Tkinter.Radiobutton(self,variable=valeur,value=select,text=texte,command=nomcommande)
radiobouton.grid(column=poscol,row=posrow,sticky="W")
return radiobouton
#Fonction permettant de créer un RadioBouton
def AddLabel(self,nomlabel,lanchor,lfg,lbg,poscol=0,posrow=0,colspan=0):
label=Tkinter.Label(self,textvariable=nomlabel,anchor=lanchor,width=45,fg=lfg,bg=lbg)
label.grid(column=poscol,row=posrow,columnspan=colspan,sticky=(E,W))
return label
def OnButtonClickFile(self,name,number):
valeur=number-1
#savoir si on est dans la liste des Labels
if (valeur<len(self.LABELS)) and (valeur>=0):
if self.LABELS[valeur].get():
tmppath=self.LABELS[valeur].get()
else:
tmppath=self.initDirectory
#Modification ou suppression de la valeur dans le dictionnaire
filename=askopenfilename(parent=self.parent,initialdir=tmppath,title=name,filetypes=[('all', '*')])
if filename:
self.FILES[name]=filename
self.LABELS[valeur].set(self.FILES[name])
txt=str(self.LABELS[valeur])
else:
txt=u"Failed No values"
#print txt
def OnButtonClickDirectory(self,name,number):
valeur=number-1
#savoir si on est dans la liste des Labels
if (valeur<len(self.LABELS)) and (valeur>=0):
if self.LABELS[valeur].get():
tmppath=self.LABELS[valeur].get()
else:
tmppath=self.initDirectory
directoryname=askdirectory(parent=self.parent,initialdir=tmppath,title=name,mustexist=False)
if directoryname:
self.FILES[name]=directoryname
self.LABELS[valeur].set(self.FILES[name])
txt=str(self.LABELS[valeur])
else:
txt=u"Failed No values"
#print txt
def Selection(self):
valeur = self.valueradiobutton.get()-1
if (valeur<len(self.MODESLIST)) and (valeur>=0):
var=u"You selected the option " + str(valeur+1) + " " + self.MODESLIST[valeur][1]
else:
var=u"Error"
print var
def Executer(self):
pass
#Fonction Global du programme Python
def Test():
print u"sucess"
#Fonction Global du programme Python
def fonctionVide():
pass
if __name__ == '__main__':
app = simpleapp_tk(None)
app.title(u"Prog Test")
app.mainloop() |
Partager