J'ai 3 panneaux et je veux faire des traînées sur eux. Le problème est que quand je fais un glisser sur un cela se produit: http://img41.yfrog.com/img41/9043/soundlog.png http://img41.yfrog.com/img41/9043/soundlog.pngComment effacer le contenu d'une trame wxpython lorsque vous faites glisser un panneau?
Comment puis-je actualiser le cadre de happear sa couleur lorsque le panneau n'est plus là?
Voici le code que je dois faire le glisser:
def onMouseMove(self, event):
(self.pointWidth, self.pointHeight) = event.GetPosition()
(self.width, self.height) = self.GetSizeTuple()
if (self.pointWidth>100 and self.pointWidth<(self.width-100) and self.pointHeight < 15) or self.parent.dragging:
self.SetCursor(wx.StockCursor(wx.CURSOR_SIZING))
"""implement dragging"""
if not event.Dragging():
self.w = 0
self.h = 0
return
self.CaptureMouse()
if self.w == 0 and self.h == 0:
(self.w, self.h) = event.GetPosition()
else:
(posw, posh) = event.GetPosition()
displacement = self.h - posh
self.SetPosition(self.GetPosition() - (0, displacement))
else:
self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
def onDraggingDown(self, event):
if self.pointWidth>100 and self.pointWidth<(self.width-100) and self.pointHeight < 15:
self.parent.dragging = 1
self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
self.SetBackgroundColour('BLUE')
self.parent.SetTransparent(220)
self.Refresh()
def onDraggingUp(self, event):
self.parent.dragging = 0
self.parent.SetTransparent(255)
self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
et ce sont les binds pour ces évènements:
self.Bind(wx.EVT_MOTION, self.onMouseMove)
self.Bind(wx.EVT_LEFT_DOWN, self.onDraggingDown)
self.Bind(wx.EVT_LEFT_UP, self.onDraggingUp)
Avec cela, si je clique sur le haut de la panneau, et descendre ou monter, la position du panneau change (je fais glisser le panneau) à la position de la souris.
Qu'entendez-vous par "faire glisser sur eux"? pouvez-vous mettre un échantillon de code autonome qui démontre le problème? –
J'ai mis le code, le comprenez-vous maintenant? –
Pouvez-vous mettre du code que je peux simplement exécuter sans copier coller, donc je peux voir le problème de première main et le réparer. –