IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

[Tkinter] Afficher un objet graphique grace a 1 bouton


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Points : 48
    Points
    48
    Par défaut [Tkinter] Afficher un objet graphique grace a 1 bouton
    Bonsoir,

    Voilà j'ai 2 fichiers,
    - le fichier qui décrit la GUI.
    - un fichier qui définit un objet graphique (ex: un rectangle) dans une classe.

    Grâce à un bouton de la GUI je souhaiterai afficher mon rectangle... et je n'y arrive pas.

    Si j'importe la classe suivante dans ma GUI:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    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
    		parent.create_rectangle(0, 0, 600, 600, fill= "azure", outline= "azure", width= 1)
    le rectangle est dessiné de suite au lancement de la GUI. J'imagine que je dois déclarer une méthode pour le "create_rectangle" mais je ne vois pas du tout le code que je dois mettre sur le bouton de la GUI.

    Vous pourriez me donner la solution svp.
    En vous remerciant.
    areuh

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    # 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)
    Voilà, c'est tout. Il faut que j'explore les différentes possibilités maintenant.

    Si les plus expérimentés ont des remarques, des conseils ou critiques, je suis preneur.

    a+
    areuh

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/01/2015, 14h43
  2. Réponses: 11
    Dernier message: 19/05/2014, 11h25
  3. [Tkinter] afficher un graphique dans un canevas
    Par Makino dans le forum Tkinter
    Réponses: 2
    Dernier message: 09/03/2006, 13h37
  4. Afficher deux objets superposés C++ Builder 6
    Par nicoistia dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/03/2004, 15h09
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo