wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1

Valid XHTML 1.0 Transitional

Valid CSS2

Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Contrôles
» [wxAui] Fermer et Ouvrir les panes
Détails du snippet : [wxAui] Fermer et Ouvrir les panes
Informations sur l'auteur de ce snippet :


Hors ligne
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Introduction / Description :
wxAui permet de créer des "panes" ce qui donne à l'utilisateur certaines libertées dont :
Déplacer les panes, modifier leurs tailles et aussi pouvoir les fermer et réouvrir.
Contenu du snippet :
Pour créer un pane :

Code wxWidgets:

 
  wxAuiPaneInfo m_AuiPane;
  m_AuiPane.Caption(_("my Pane"));


Pour créer un pane avec une taille minimum et sans pouvoir la fermer :

Code wxWidgets:

 
  wxAuiPaneInfo m_AuiPane;
  m_AuiPane.MinSize(225, -1);
  m_AuiPane.CloseButton(false);
  m_AuiPane.Caption(_("my Pane"));



Aprés avoir fermé une pane, il faut pouvoir la réouvrir en faisant par exemple dans le menu View -> my Pane.
A placer dans l'event du menu par exemple le code suivant :

Code wxWidgets:

m_AuiPane = m_mgr.GetPane(m_panelSearch);
 
if(!m_AuiPane.IsShown())
{
   m_mgr.GetPane(m_panelSearch).Show();
   m_mgr.Update();
}


Pour commenter un peu le code, le pointeur "m_panelSearch" pointe l'objet qui se trouve dans la pane ce qui permet de l'identifier mais on peut lui passer sont nom.
Pour le test, si la pane n'est pas visible alors on l'affiche.
Explications finales :
les class de wxAui nous permettent de faire un environnement moderne facile d'utilisation et de conception pour nos applications.
Commentaires
Alfred83 (Membre)
Lieu: Toulon 83
Inscrit le : 28-12-2007
Messages: 40
Snippets: 0
Tutoriels: 0
Hors ligne
De quoi s'agit-il? Pourriez-vous nous dire ce qu'est une "pane"?
A priori cela se voit, cela a une taille minimum, cela s'ouvre et se ferme, mais à quoi cela sert-il?
Un vieil informaticien curieux.
Cordialement.

Informaticien bénévole du "Groupement des Intellectuels Aveugles ou Amblyopes" à Toulon, qui publie les trois quarts des livres en braille en France.
cfdev (Membre)
Lieu: Alpes de Haut Provence
Inscrit le : 08-11-2007
Messages: 127
Snippets: 4
Tutoriels: 0
Site web
Hors ligne
les panes c'est le nom des fenêtres détachables de la class wxAUI.

Pour voir a quoi ca ressemble voir les panes c'est le nom des fenêtres détachables de la class wxAUI screenshots sur le site officiel des créateurs :)

++

Dernière modification par cfdev (19-09-2008 08:44:47)


GNU Linux Power !
Slacker
Benz (Nouveau membre)
Lieu: Blois
Inscrit le : 22-10-2008
Messages: 3
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

j'ai essayé ton code, ça compile mais il y a un problème avec l'executable :

Code:

Compiling: test_auiApp.cpp
Compiling: test_auiMain.cpp
Compiling: resource.rc
Linking executable: bin\Release\test_aui.exe
obj\Release\test_auiMain.o:test_auiMain.cpp:(.text+0xd9e): undefined reference to `__imp___ZN20wxAuiPaneButtonArrayD1Ev'
obj\Release\test_auiMain.o:test_auiMain.cpp:(.text+0x1036): undefined reference to `__imp___ZN20wxAuiPaneButtonArrayD1Ev'
obj\Release\test_auiMain.o:test_auiMain.cpp:(.text+0x228e): undefined reference to `__imp___ZN20wxAuiPaneButtonArrayD1Ev'
obj\Release\test_auiMain.o:test_auiMain.cpp:(.text+0x2526): undefined reference to `__imp___ZN20wxAuiPaneButtonArrayD1Ev'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 7 seconds)
4 errors, 0 warnings
 


pour info j'ai créé un projet wxWidget non vide sous Code::Block dans lequel j'y ai inséré le code que tu as donné au début du constructeur juste avant la création des menu:

Code wxWidgets:

 
test_auiFrame::test_auiFrame(wxFrame *frame, const wxString& title)
    : wxFrame(frame, -1, title)
{
 
    wxAuiPaneInfo m_AuiPane;
    m_AuiPane.Caption(_("my Pane"));
 
    // create a menu bar
    wxMenuBar* mbar = new wxMenuBar();
    ...
 


Qu'ai-je mal fait ?

merci d'avance.
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1375
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.
C'est un problème de lib manquante.

A mon avis, tu n'as pas ajouté la lib "aui" de wxWidgets à la liste des libs à linker.

Pour cela : Menu "Project" -> "Build options" -> Onglet "Linker settings"

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Benz (Nouveau membre)
Lieu: Blois
Inscrit le : 22-10-2008
Messages: 3
Snippets: 0
Tutoriels: 0
Hors ligne
j'ai rajouté comme tu me l'as dit la lib manquante et maintenant il n'y a plus de problème de link pour créer l'executable. Merci!

En revanche j'ai auncun pane qui s'affiche pour le moment, mais je vais faire un tour sur le site wwwkirix.com pour essayer de comprendre se qui manque.

@+
Benz.
----------
Bonsoir à tous,

j'essaye maintenant depuis un petit moment et je tourne en rond. En fait je n'arrive à faire dans mon appli apparaitre des Pane. Je ne comprend pas ce qui ne va pas. En fait j'ai bien quelque chose qui s'affiche, mais ça ne ressemble pas à un pane.


J'ai défini la variable m_mgr comme suit :

Code wxWidgets:



Autre chose bizarre, lorsque que j'utilise le code suivant l'appli plante :

Code wxWidgets:

m_mgr.Update();


Y-aurait-il quelqu'un qui aurait un code complet montrant l'utilisation l'utilisation d'un pane (car tout ce que j'ai trouvé pour le moment ne compile pas!)

merci d'avance
@+, Benz.

Dernière modification par Benz (25-10-2008 22:41:54)

Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1375
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

As-tu regardé l'exemple fourni avec les libs ?

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Benz (Nouveau membre)
Lieu: Blois
Inscrit le : 22-10-2008
Messages: 3
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,

je viens de l'essayer (./samples/aui/auidemo.cpp), y'a du progès, c'est-à-dire que ça compile, ça link, mais lorsque je lance l'exexutable j'ai un message d'erreur comme quoi mon application a rencontré un problème et doit fermer.
Je vais essayer de voir comment l'exemple est fait, mais il y a plus 1600 lignes...

@+, Benz.
----------
J'ai chercher à trouver qu'est ce qui faisait planter l'application issu de l'exemple fourni pour la lib aui. En fait c'est lorsque le programme arrive à la ligne de commande :

Code wxWidgets:

 // tell wxAuiManager to manage this frame
    m_mgr.SetManagedWindow(this);

que ça plante.

j'avais le même problème avec le code :

Code wxWidgets:

m_mgr.Update();


je ne comprend pas. Ai-je une mauvaise configuration de mes options de compilation? ou bien autre chose?

@+,
Benz.
----------
j'ai rediriger mon problème sur le forum http:/www.wxdev.fr/topic295-crash_lors_ … ation.html car celui-ci sort du contexte de ce snippets.

Si vous avez une idée à mon problème, merci de répondre sur le forum.

@+,
Benz

Dernière modification par Benz (26-10-2008 19:21:13)

Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Contrôles
» [wxAui] Fermer et Ouvrir les panes