[Python] Problem "add_command"
Résolu
Utilisateur anonyme
-
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour
Voici la ligne qu me pose problème :
"inputmenu.add_command(label = "LIN", command = Print_Lin)"
J'ai créé une petite interface et lorsque je clique sur l'onglet "Lin", la fonction Print_Lin est appelée. Jusque-là, pas de problème.
Maintenant, je voudrais passer des paramètres à ma fonction Print_Lin, comme par exemple :
"inputmenu.add_command(label = "LIN", command = Print_Lin(matrice_lin))"
Et dans ce cas-là, ma fonction Print_Lin est appelée sans que je n'ai cliqué sur l'onglet "LIN". Et si je clique dessus, la fonction ne répond plus...
Quelqu'un aurait une idée?
Merci beaucoup
Voici la ligne qu me pose problème :
"inputmenu.add_command(label = "LIN", command = Print_Lin)"
J'ai créé une petite interface et lorsque je clique sur l'onglet "Lin", la fonction Print_Lin est appelée. Jusque-là, pas de problème.
Maintenant, je voudrais passer des paramètres à ma fonction Print_Lin, comme par exemple :
"inputmenu.add_command(label = "LIN", command = Print_Lin(matrice_lin))"
Et dans ce cas-là, ma fonction Print_Lin est appelée sans que je n'ai cliqué sur l'onglet "LIN". Et si je clique dessus, la fonction ne répond plus...
Quelqu'un aurait une idée?
Merci beaucoup
A voir également:
- [Python] Problem "add_command"
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python
7 réponses
Dans un fichier ?
Dans l'interface graphique ?
Dans l'interface graphique ?
Utilisateur anonyme
Dans le terminal de commande, ma fonction Print_Lin affiche qqch qu'elle ne devrait afficher que lorsqu'on clique sur l'onglet qui l'appelle.
Voilà comment tu devrais faire:
Ne lance pas Print_lin directement.
Créé une fonction qui réagiera au clic, et c'est cette fonction qui lancera Print_Lin() en lui passant les bons paramètres.
Ne lance pas Print_lin directement.
Créé une fonction qui réagiera au clic, et c'est cette fonction qui lancera Print_Lin() en lui passant les bons paramètres.
Alors, comment je peux faire pour exécuter une fonction quand je clique sur un des onglets de mon interface?
Ben comme je t'ai dit:
command=bt_click()
puis la fonction bt_click() appelle Print_Lin() avec les bons paramètres.
Quant aux paramètres de Print_Lin(), vu que tu as une interface graphique, ils doivent aussi venir de l'interface graphique, non ?
(Nom de fichier ou autre).
Donc ta fonction bt_click() doit pouvoir aller lire les paramètres dans les éléments de l'interface graphique (zone de texte, case à cocher, etc.)
Ben comme je t'ai dit:
command=bt_click()
puis la fonction bt_click() appelle Print_Lin() avec les bons paramètres.
Quant aux paramètres de Print_Lin(), vu que tu as une interface graphique, ils doivent aussi venir de l'interface graphique, non ?
(Nom de fichier ou autre).
Donc ta fonction bt_click() doit pouvoir aller lire les paramètres dans les éléments de l'interface graphique (zone de texte, case à cocher, etc.)
Ben en fait, non
Tous mes paramètres ne viennent pas de l'interface graphique, c'est ça le problème.
En fait, mon programme récupère les données d'un fichier et les traite.
J'ai des paramètres d'entrée (par exemple x1, x2, x3, ...)et des param de sortie (y1, y2, y3, ...).
Je voudrais juste créer une interface qui puisse me permettre de choisir de tracer des courbes, comme x1 = f(y1), x1 = f(y3), ....
C'est pour ça que j'avais déclarer les variables en global puisqu'elles ne proviennent pas du tout de mon interface graphique.
Sinon, y'a beaucoup de risuqe à utiliser les variables globales?
Tous mes paramètres ne viennent pas de l'interface graphique, c'est ça le problème.
En fait, mon programme récupère les données d'un fichier et les traite.
J'ai des paramètres d'entrée (par exemple x1, x2, x3, ...)et des param de sortie (y1, y2, y3, ...).
Je voudrais juste créer une interface qui puisse me permettre de choisir de tracer des courbes, comme x1 = f(y1), x1 = f(y3), ....
C'est pour ça que j'avais déclarer les variables en global puisqu'elles ne proviennent pas du tout de mon interface graphique.
Sinon, y'a beaucoup de risuqe à utiliser les variables globales?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je voudrais juste créer une interface qui puisse me permettre de choisir de tracer des courbes
Dans ce cas, ce n'est pas dans l'interface graphique que tu dois lancer le traitement.
L'interface doit juste servir à récupérer les paramètres dont tu as besoin.
Exemple: Programme principal:
afficher fenêtre paramètres()
récupérer paramètres renvoyés par la fenêtre
lancer le traitement
afficher le graphe.
Dans ce cas, ce n'est pas dans l'interface graphique que tu dois lancer le traitement.
L'interface doit juste servir à récupérer les paramètres dont tu as besoin.
Exemple: Programme principal:
afficher fenêtre paramètres()
récupérer paramètres renvoyés par la fenêtre
lancer le traitement
afficher le graphe.
Y'a beaucoup de risuqe à utiliser les variables globales?
C'est une source de bugs importante.
Le risque est grand d'utiliser un nom de variable déjà déclaré en global sans s'en rendre compte, par exemple.
En programmation, on considère que l'utilisation des globale est nuisible, tout comme les GOTO.
Quand on éprouve le besoin d'utiliser des globales ou des GOTO, on est sûr à 99% qu'en réalité ce n'est pas nécessaire et que c'est un problème d'organisation du code.
C'est une source de bugs importante.
Le risque est grand d'utiliser un nom de variable déjà déclaré en global sans s'en rendre compte, par exemple.
En programmation, on considère que l'utilisation des globale est nuisible, tout comme les GOTO.
Quand on éprouve le besoin d'utiliser des globales ou des GOTO, on est sûr à 99% qu'en réalité ce n'est pas nécessaire et que c'est un problème d'organisation du code.