Zoom sur un wx.lib.ogl.ShapeCanvas
Bonjour,
Je cherche à utiliser une fonction de Zoom sur un ShapeCanvas, un peu comme celle disponible pour un FloatCanvas (barre Navcanvas).
Il semble qu'un ShapeCanvas hérite de la classe ScrolledWindow:
http://www.wxpython.org/docs/api/wx....vas-class.html
J'ai beau chercher dans tous les sens, je ne trouve pas.
J'hésite à tout reprendre en utilisant un FloatCanvas, toutefois j'ai besoin de créer des objets liés par des connecteurs (liens). Je ne crois pas que cela existe sur un FloatCanvas.
Avez-vous une idée ?
Merci d'avance
solution plus facile et élégante
En fait, j'ai trouvé une solution plus simple qui n'exige même pas de modifier la code source de ogl:
Crée une subclass de ogl.ShapeCanvas, et utilise un objet de cette nouvelle classe pour initialiser le Diagram:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import wx.lib.ogl as ogl
class ZoomingShapeCanvas(ogl.ShapeCanvas):
def __init__(self, parent):
ogl.ShapeCanvas.__init__(self, parent)
self.zoom = 2.0
def PrepareDC(self, dc):
ogl.ShapeCanvas.PrepareDC(self, dc)
dc.SetUserScale(self.zoom, self.zoom)
def SetZoom(self, zoom):
self.zoom = zoom
self.Refresh()
def create_diagram(parent):
dia = ogl.Diagram()
dia.SetCanvas(ZoomingShapeCanvas(parent)) |
Voilà. Bonne chance!