Wx dockable panel close event

Résolu/Fermé
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 - 18 mai 2018 à 12:02
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 - 18 mai 2018 à 15:53
Bonjour,

J'utilise actuellement ce genre de panel :



Initialisé ainsi :

import wx 
import wx.aui

self.mgr = wx.aui.AuiManager(self)

self.panelLeft = wx.Panel(self)
panelLeftbox = wx.BoxSizer(wx.VERTICAL)
self.panelLeft.SetSizer(panelLeftbox)
infoLeft = wx.aui.AuiPaneInfo().Left() 
self.mgr.AddPane(self.panelLeft, infoLeft)


Je souhaiterais détecter (avec un bind par exemple) lorsque je ferme le panel avec la petite croix en haut à droite du composant.

Merci d'avance pour vos réponses.

2 réponses

electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 6
18 mai 2018 à 14:50
J'ai trouvé ceci :

self.mgr.Bind(wx.aui.EVT_AUI_PANE_CLOSE, self.onClosePanel)


Qui détecte la fermeture d'un panel, mais impossible d'identifier lequel ...
0
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 6
18 mai 2018 à 15:53
Pour ceux qui cherchent la solution, apparemment il suffisait de donner un nom au panel :

infoLeft.name = 'monpanel'


Et on peut déterminer l'état (fermé ou non) simplement ainsi (ici utilisé pour le cacher ou le montrer au clique) :

def showOrHidePanel(self):
	if(self.mgr.GetPane('monpanel').IsShown()):
		self.mgr.GetPane('monpanel').Hide()
	else:
		self.mgr.GetPane('monpanel').Show()
	self.mgr.Update()

0