[Python] Récup param interface graphique

Résolu/Fermé
Utilisateur anonyme - 11 avril 2006 à 10:09
 Utilisateur anonyme - 11 avril 2006 à 12:15
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

6 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
11 avril 2006 à 10:16
Ils sont présentés sous quelle forme tes paramètres à l'écran ?

Des zones de texte, des checkbox, autre ?
0
Utilisateur anonyme
11 avril 2006 à 10:22
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
11 avril 2006 à 10:32
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
11 avril 2006 à 10:38
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
11 avril 2006 à 11:24
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
11 avril 2006 à 11:32
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
11 avril 2006 à 11:39
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
11 avril 2006 à 11:54
OK
merci
0
Utilisateur anonyme
11 avril 2006 à 12:06
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
11 avril 2006 à 12:09
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
11 avril 2006 à 12:10
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
11 avril 2006 à 12:15
ok ça marche
merci
0