[Python] Récup param interface graphique
Résolu
Utilisateur anonyme
-
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
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:
- [Python] Récup param interface graphique
- Changer carte graphique - Guide
- Citizen code python avis - Accueil - Outils
- Graphique sparkline - Guide
- Graphique camembert excel - Guide
- Comment faire un graphique sur excel - Guide
6 réponses
Ils sont présentés sous quelle forme tes paramètres à l'écran ?
Des zones de texte, des checkbox, autre ?
Des zones de texte, des checkbox, autre ?
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 )
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 )
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:
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.
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.
Pour les onglets, j'ai utilisé un petit module qui apporte des fonctionnalités supplémentaires à tkinter:
PMW (Python Megawidgets).
http://pmw.sourceforge.net/
PMW (Python Megawidgets).
http://pmw.sourceforge.net/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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\
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\
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