Appel de methode entre 2 fichiers

cs_areuh Messages postés 4 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 16 mai 2007 - 16 avril 2007 à 02:39
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 - 7 mai 2007 à 09:15
    Bonsoir,

Voilà, j'ai 2 fichiers .py représentant chacun une classe
- le 1° est la gui (interface graphique avec Frame, Button, etc)
- le 2° est un objet graphique simple (1 cercle) dont voici le code:
class Zdop:
   
    def __init__(self, parent):
       
        # Garder une ref a notre parent, c'est a dire le widget
        # qui contiendra l'objet defini ci-dessous
        self.parent= parent
       
        # dessiner un carre
        def dessine(self, parent):
            parent.create_rectangle(0, 0, 600, 600, fill= "azure", outline= "azure", width= 1)

je souhaiterai dans le fichier gui creer un objet Zdop >> pas de probleme
je souhaiterai dans le fichier gui appeler la methode dessine de l'objet Zdop >> je ne sais pas comment faire

je ne sais pas si j'ai les bons paramtres dans la définition de ma méthode et je ne sais pas comment appeller cette methode à partir de mon fichier gui.
Est il possible d'avoir une explication s'il vous plait.
En vous remerciant.
areuh_fr

2 réponses

cs_areuh Messages postés 4 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 16 mai 2007
17 avril 2007 à 10:33
Salut,


Apres moults essais, je suis enfin arrivé à ce que je voulais.


En fait, je définissais la methode dessine_rond() au dessous du __init__ alors qu'il fallait la définir au-dessus.


je vous mets le code


classe de l'objet graphique: un rond tout bête
----------------------------------------------------------------------------------------------
class Rond:
   
    # syntaxe qui permet d'appeller dans le fichier principal
    # la methode dessine_rond() en passant un argument (ici la couleur)
    # voir exemple 02 ds le fichier principal
    # fonctionne avec exemple 02
    def dessine_rond(self, cible, r= 15):
        cible.create_oval(100- r, 100- r, 100+ r, 100+ r, fill= self.coul, width= 3)
   
    def __init__(self, coul):
        self.coul= coul
----------------------------------------------------------------------------------------------

L'appel à la methode dessine_rond() est tout simple:

# exemple 02:
        # creation d'un objet defini dans un fichier classe
        # appel de la methode de l'objet qui le dessine
        test01= rond_class.Rond("orange")
        test01.dessine_rond(self.affiche_zdop_toplevel_graphique_cnv)
----------------------------------------------------------------------------------------------

Je vais voir si je peux mettre un [RESOLU]
les + expérimentés, j'attends critiques, remarques autres si vous avez.
Merci
a+
areuh
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
7 mai 2007 à 09:15
Salut !
Je pensais avoir compris ton problème au 1er message mais le 2nd me déroute un peu, qu'est devenu ta class Zdop?
sinon pour tenter de répondre au 1er problème :

disons que nous avons un fichier contenant les objets graphiques qui s'appelle "graph.py"
ce fichier contient ta class "Zdop"

Pour utiliser ta class Zdop dans ton fichier "gui.py" il te suffit de l'importer

import graph
et pour accéder à ta class
graph.Zdop

ou alors si tu veux accéder directement à la class Zdop
from graph import *

naturellement pour que cela marche tes fichiers doivent être dans le même répertoire

j'espère avoir répondu à la question sinon n'hésite pas à poster de nouveau
0
Rejoignez-nous