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

GTK+ avec Python Discussion :

Widget Drawing Area


Sujet :

GTK+ avec Python

  1. #1
    Invité
    Invité(e)
    Par défaut Widget Drawing Area
    Bonjour,

    Je souhaite créer un petit soft de création, résolution de labyrinthe en PyGTK. Pour le moment j'utilise j'essaye d'utiliser une DrawingArea pour dessiner mon labyrinthe. Seulement j'ai quelques soucis pour redessiner mes widgets au moment du redimensionnement de la fenêtre principale. Voici mon "code" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    #!/usr/bin/env python2
    # -*- coding: utf-8 -*- 
    import sys
    try:
            import pygtk
            pygtk.require("2.0")
    except:
            pass
    try:
            import gtk
            #import gtk.glade
    except:
            sys.exit(1)       
     
    class Gui:
    	def __init__(self):      
    		self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    		self.window.set_resizable(True)
    		self.window.set_size_request(300,240)
    		self.window.set_title(u'Génération de labyrinthe')
    		self.window.connect('delete-event', self.on_delete)
    		self.window.connect('size-allocate', self.on_resize)
    		self.view = gtk.VBox(False, 0)
    		self.lab = LabyrinthView(self.window.get_size()).view
    		self.view.pack_start(self.lab,True,True,0)
    		self.window.add(self.view)
    		self.window.show_all()
     
    	def on_delete(self, source=None, event=None):
    		gtk.main_quit()
    		return False
     
    	def on_resize(self, source=None, event=None):
    		#peut-être là ?
     
    class LabyrinthView(object):
        def __init__(self):
     
            self.view = gtk.Alignment(0.5, 0.5)
            self.view.show()
     
            self.area = gtk.DrawingArea()
            self.area.set_size_request(x,y)
            self.area.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white"))
            self.area.connect("expose-event", self.on_resize)
            self.area.show()
            self.view.add(self.area)
            self.draw_board()
     
        def widget(self):
    	return self.view
     
        def draw_board(self):
            #dessin du labyrinthe
     
        def on_resize(self, source=None, event=None):
            #I don't know what to put here
            self.draw_board()
     
    if __name__ == "__main__":
    	gui = Gui()
    	gtk.main()
    Déjà première question qui me vient à l'esprit, faut-il utiliser le widget DrawingArea ou y a-t-il mieux ?

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Le GtkDrawingArea est fait pour ce que tu recherches. Ensuite il vaut mieux utiliser le signal "configure-event" pour redimensionner ton widget.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok, merci, je suis passé en SDL pour faire mon programme finalement, mais il faut que je planche sur le redimensionnement des DrawingArea.

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

Discussions similaires

  1. Pygtk: comment utiliser le widget Drawing Area
    Par leousch dans le forum GTK+ avec Python
    Réponses: 9
    Dernier message: 23/08/2009, 12h44
  2. Dessiner sur une drawing area
    Par Fibus dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 19/12/2007, 16h57
  3. drawing area et itérations
    Par Rniamo dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 07/11/2007, 19h00
  4. Drawing area
    Par Blackshade dans le forum GTK+ avec PHP
    Réponses: 4
    Dernier message: 06/06/2007, 16h51
  5. Image de fond dans un drawing area
    Par smux dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 15/09/2006, 11h17

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