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 : 3

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Problème avec wxBoxSizer
Conversation (Résolue) : Problème avec wxBoxSizer
28-04-2013 19:47:56  Problème avec wxBoxSizer #1
RASC (Membre)
Inscrit le : 06-01-2013
Messages: 15
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,

j'ai un petit problème avec le wxBoxSizer, est ce que quelqu'un peut me donner un coup de main, voici le code:

Code wxWidgets:

 
    //Label Code
    codeStaticText = new wxStaticText( this, wxID_ANY, wxT( "Colour Code" ) );
    codeStaticText->SetBackgroundColour( "#FFFFFF" );
    codeStaticText->SetSize( 50, 10 );
 
    //Label Symbol
    symbolStaticText = new wxStaticText( this, wxID_ANY, wxT( "Symbol" ) );
    symbolStaticText->SetBackgroundColour( "#FFFFFF" );
    symbolStaticText->SetSize( 50, 10 );
 
    //Panel
    panel = new wxPanel( this, wxID_ANY );
    panel->SetBackgroundColour( "#FFFFFF" );
 
    //Main Horizontal Box
    mainBoxSizer = new wxBoxSizer( wxHORIZONTAL );
 
    //Horizontal Labels Box
    labelBoxSizer = new wxBoxSizer( wxHORIZONTAL );
    labelBoxSizer->Add( codeStaticText, 0, wxALL, 10 );
    labelBoxSizer->Add( symbolStaticText, 0, wxALL, 10 );
 
    //Add labels box to main box
    mainBoxSizer->Add( labelBoxSizer, 0, wxALL, 10 );
 
    //Panel Box Sizer
    panelBoxSizer = new wxBoxSizer( wxHORIZONTAL );
    panelBoxSizer->Add( panelBoxSizer );
 
    //Add panel box to main box
    mainBoxSizer->Add( panelBoxSizer, 0, wxALL, 10 );
 
    //Set Sizer
    SetSizer( mainBoxSizer );
 

Mon wxPanel n’apparaît pas dans ma fenêtre et ça crashe.

Merci,
RASC.
28-04-2013 23:23:53  Re: Problème avec wxBoxSizer #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Le problème vient à mon avis de la portion de code suivante :

Code wxWidgets:

//Panel Box Sizer
panelBoxSizer = new wxBoxSizer( wxHORIZONTAL );
panelBoxSizer->Add( panelBoxSizer );


Un wxBoxSizer qui s'ajoute à lui même, et qui ne contient rien ...

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
29-04-2013 20:46:23  Re: Problème avec wxBoxSizer #3
RASC (Membre)
Inscrit le : 06-01-2013
Messages: 15
Snippets: 0
Tutoriels: 0
Hors ligne
C'est vrai j'ai zappé ça, ce que je voulais en fait c'est de mettre mon panel. Maintenant j'ai changé ça, mais je n'arrive toujours pas à voir mon panel, je vois un tout petit point blanc. Ce que je voudrais c'est que mon panel occupe toute la partie droite de mainBoxSizer.

Salutations,
RASC.
29-04-2013 21:05:41  Re: Problème avec wxBoxSizer #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Dans ce cas, tu remplaces

Code wxWidgets:

    //Panel Box Sizer
    panelBoxSizer = new wxBoxSizer( wxHORIZONTAL );
    panelBoxSizer->Add( panelBoxSizer );
 
    //Add panel box to main box
    mainBoxSizer->Add( panelBoxSizer, 0, wxALL, 10 );

par

Code wxWidgets:

    //Add panel to main box
    mainBoxSizer->Add( panel, 0, wxALL, 10 );

et ça devrait le faire.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
30-04-2013 20:34:48  Re: Problème avec wxBoxSizer #5
RASC (Membre)
Inscrit le : 06-01-2013
Messages: 15
Snippets: 0
Tutoriels: 0
Hors ligne
Merci pour tes réponses Xaviou, je viens d'essayer ce que tu m'as indiqué mais ça ne marche pas :(
30-04-2013 21:17:47  Re: Problème avec wxBoxSizer #6
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Tu devrais re-poster ton code, et expliquer ce que tu veux faire plus précisément : ça sera plus simple pour t'aider.

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
01-05-2013 20:12:45  Re: Problème avec wxBoxSizer #7
RASC (Membre)
Inscrit le : 06-01-2013
Messages: 15
Snippets: 0
Tutoriels: 0
Hors ligne
Voilà le code ( mais en fait c'est presque le même ):

Code wxWidgets:

 
MainFrame::MainFrame( const wxString &title ) : wxFrame( NULL, wxID_ANY, title )
{
    Maximize( true );
    Centre();
 
    //Menu File
    fileMenu = new wxMenu;
    fileMenu->Append( ID_OnOpen, wxT( "&Open\tALT-O" ), wxT( "Open your file" ) );
    Connect( ID_OnOpen, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnOpen ) );
 
    //Menu Create
    createMenu = new wxMenu;
    createMenu->Append( ID_OnCreate, wxT( "Cross Stitch" ), wxT( "Create your Cross Stitch" ) );
    Connect( ID_OnCreate, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnCreate ) );
 
    //Bar Menu
    menuBar = new wxMenuBar;
    menuBar->Append( fileMenu, wxT( "&File" ) );
    menuBar->Append( createMenu, wxT( "&Create" ) );
    SetMenuBar( menuBar );
 
    //Status Bar
    statusBar = new wxStatusBar( this, wxID_ANY, wxST_SIZEGRIP );
    this->SetStatusBar( statusBar );
    statusBar->SetStatusText( wxT( "Ready" ) );
 
    //Label Code
    codeStaticText = new wxStaticText( this, wxID_ANY, wxT( "Colour Code" ) );
    codeStaticText->SetBackgroundColour( "#FFFFFF" );
    codeStaticText->SetSize( 50, 10 );
 
    //Label Symbol
    symbolStaticText = new wxStaticText( this, wxID_ANY, wxT( "Symbol" ) );
    symbolStaticText->SetBackgroundColour( "#FFFFFF" );
    symbolStaticText->SetSize( 50, 10 );
 
    //Panel
    panel = new wxPanel( this, wxID_ANY );
    panel->SetBackgroundColour( "#FFFFFF" );
    //panel->SetSize(100,100);
 
    //Main Horizontal Box
    mainBoxSizer = new wxBoxSizer( wxHORIZONTAL );
 
    //Horizontal Labels Box
    labelBoxSizer = new wxBoxSizer( wxHORIZONTAL );
    labelBoxSizer->Add( codeStaticText, 0, wxALL, 10 );
    labelBoxSizer->Add( symbolStaticText, 0, wxALL, 10 );
 
    //Add labels box to main box
    mainBoxSizer->Add( labelBoxSizer, 0, wxALL, 10 );
 
    //Panel Box Sizer
    panelBoxSizer = new wxBoxSizer( wxHORIZONTAL );
    panelBoxSizer->Add( panel );
 
    //Add panel box to main box
    mainBoxSizer->Add( panel, 0, wxALL, 10 );
 
    //Set Sizer
    SetSizer( mainBoxSizer );
}
 

Ce que prétend c'est d'avoir du côté gauche les deux wxStaticText et le reste le wxPanel. Apés je veux utiliser le wxPanel pour y créer une image. Mais je n'arrive pas à voir le wxPanel, je vois un tout petit point blanc à côté de wxStaticText.

Salutations,
RASC.
01-05-2013 20:28:40  Re: Problème avec wxBoxSizer #8
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Essayes de remplacer

Code wxWidgets:

    //Add panel box to main box
    mainBoxSizer->Add( panel, 0, wxALL, 10 );

par

Code wxWidgets:

    //Add panel box to main box
    mainBoxSizer->Add( panel, 1, wxALL|wxEXPAND, 10 );


En fait, comme tu ne donnes aucune taille à ton panel lors de sa création, il prends la taille minimale.
Et comme tu l'ajoutes avec le coefficient "0" et non extensible, il reste en taille minimale.

Si tu veux lui donner une taille spécifique, tu peux le faire en le créant :

Code wxWidgets:

panel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxSize(100, 100) );

Dans ce cas, en laissant la ligne d'ajout au sizer telle-quelle, il aura dès le début la bonne taille, et la taille de la fenêtre sera adaptée tout de suite si à la fin de ton code tu ajoutes :

Code wxWidgets:

mainBoxSizer->SetSizeHints(this);

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
02-05-2013 18:57:48  Re: Problème avec wxBoxSizer #9
RASC (Membre)
Inscrit le : 06-01-2013
Messages: 15
Snippets: 0
Tutoriels: 0
Hors ligne
Merci Xaviou c'est ça que je voulais faire :).

Salutations,
RASC.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Problème avec wxBoxSizer