[Python] Récup param interface graphique

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
Voilà mon problème :
J'ai créé une interface graphique avec différents onglets qui ont une liste de paramètres liée à une liste. Je m'explique... J'ai une liste de paramètres (dont la taile est récupérée dans une partie de mon programme). Un fois que j'ai la taille de cette liste, ainsi que les paramètres qui la composent, je créé un onglet qui présente autant "d'éléments" qu'il y a de paramètres.
Maintenant, je voudrais, quand je clique sur un des éléments (qui correspond à un des paramètres) pouvoir récupérer le paramètre en question.
Voici mon code pour vous aider à comprendre :
"for t in matrice_lin.keys() :
list_param_lin.append(t)
i = 0
while (i < len(list_param_lin)) :
inputmenu.add_command(label = list_param_lin[i], command = bt_click)
i += 1"

Que je clique sur le premier élément ou sur le dernier, la fonction appelée est bt_click(), mais je ne connais pas le paramètre sur lequel j'ai cliqué.
Quelqu'un aurait une idée?
Merci beaucoup
A voir également:

6 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
Ils sont présentés sous quelle forme tes paramètres à l'écran ?

Des zones de texte, des checkbox, autre ?
0
Utilisateur anonyme
 
Salut Seb
Je vais devoir te citer dans les remerciements de mon rapport de stage.....
Mes paramètres sont affichés comme dans ton explorateur internet :
File
New
Open
...
Quit
0
sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
Dans un menu, donc ?

Je ne comprend pas bien:
La liste de tous les paramètres sont dans un menu ?

ça ne serait pas plus simple des les mettre dans une fenêtre ?
ça serait plus pratique pour les modifier.


(Dans mon appli, j'ai beaucoup de paramètres: je les ais mis dans une fenêtre, pas un menu. J'ai utilisé des onglets:
https://sebsauvage.net/python/webgobbler/screenshot2.png )
0
Utilisateur anonyme
 
Si effectivement ce serait plus simple.....
Alors dans ce cas, faudrait que je créé autant de Listbox que de paramètres, un peu comme dans ton "Output Options".
Comment je peux faire ça?
T'as un exemple de code stp?
Merci
0
sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
Alors dans ce cas, faudrait que je créé autant de Listbox que de paramètres

Tout à fait !


En principe, on place l'interface graphique dans une classe.
Comme membre de cette classe, on stock la liste des éléments graphiques qu'on a créés.

Voilà l'idée générale:

class monApplication:

    def __init__(self):
        self.listeWidgets = []
        self.creeInterface()    
    
    def creeInterface(self):
        ...création des menus, fenêtres, onglets...
        ...création des widgets paramètres et ajout à self.listeWidgets...
        ...création d'un bouton "Lancer" avec command=bt_click...
    
    def bt_click(self):
         Lecture des valeurs contenue dans les widgets stockés dans self.listeWidgets
         Lancement de Print_lin() avec ces paramètres.



Comme ça, tu peux bien séparer le code qui s'occupe de l'interface graphique du code qui s'occupe du traitement des données.

C'est une bonne habitude à prendre: Séparer le code qui fait les traitement du code qui s'occupe de l'interface graphique.
0
Utilisateur anonyme
 
OK
Je te remercie
Juste une autre petite question...
C'est quelle fonction qui permet de créer des onglets comme ceux de ta page (Image generation, storage, Network, ...)?
Merci
0
sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
Pour les onglets, j'ai utilisé un petit module qui apporte des fonctionnalités supplémentaires à tkinter:
PMW (Python Megawidgets).

http://pmw.sourceforge.net/
0
Utilisateur anonyme
 
OK
merci
0
Utilisateur anonyme
 
Euh....
Désolé mais je le mets où le dossier Pmw?
Dans /opt/ActivePython-2.4/bin ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
En principe les modules Python doivent être installés dans:
C:\Python24\Lib\site-packages\

(Je n'utilise pas la version ActiveState de Python, mais la distribution standard. Le répertoire sera sans doute différent pour la version ActiveState).


Donc le répertoire pmw doit se retrouver là:
C:\Python24\Lib\site-packages\Pmw\
0
sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
site-packages contient en principe tous les modules qui ont été installés (tu dois d'ailleurs y retrouver matplotlib, par exemple)
0
Utilisateur anonyme
 
ok ça marche
merci
0