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 ?