Bonjour,
je tente en vain d'utiliser la classe wx.lib.mixins.rubberband.RubberBand dans mon programme (python v2.6, wxpython v2.8 correspondant) pour faire une selection graphique sur un canvas.
Deux questions se posent à moi pour l'instant:
1. ('fondamentale') : si j'instancie un object RubberBand, j'ai bien la possibilité de choisir un rectangle dans mon canvas. Le problème est qu'aucun évènement ne semble être géré par cette classe ( en tout cas d'après la doc, http://www.wxpython.org/docs/api/wx....and-class.html). Donc j'ai du mal à comprendre comment 'attendre' que l'utilisateur ait fini sa sélection.
2.('pratique') en admettant que je finisse par trouver une solution au problème 1, il se trouve que la sélection faite avec l'objet rubberband actuel ne sot pas limitée au canvas passé en paramètre, et qu'en plus il y ait une sorte de translation entre la position du curseur et le rectangle créé (c'est difficile à décrire, disons que lorsque je fait un premier clique pour démarrer la sélection, ça commence à dessiner un rectangle mais avec le coins haut/gauche décalé d'une dizaine de pixel par rapport à la position de la souris lors du premier clique).
Pour être plus précis, le code que j'utilise est le suivant:
J'ai un vague sentiment que la classe n'est plus supporté avec python 2.6 ou un truc du genre, mais rien ne semble l'indiquer sur la doc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #..... (partie création de l'interface) self.Bind(wx.EVT_BUTTON, self.actionGetZoom, self.btZoom) def actionGetZoom(self,event): R = wx.lib.mixins.rubberband.RubberBand(self.canvas) ext = R.getCurrentExtent() #trop tot il faut que j'attende la fin de la sélection #....
Quelqu'un aurait-il des information sur l'utilisation de cette classe?
Merci d'avance,
David GUEZ
Partager