IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Perl Discussion :

[WxPERL] Problème BoxSizer dans une fenêtre


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut [WxPERL] Problème BoxSizer dans une fenêtre
    Bonjour à tous,

    Voilà, je n'arrive pas à créer de boxsizer dans dans une fenêtre qui contient deux fenêtres (à l'aide de Wx::SplitWindow)

    Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    use Wx;
    use splitwin;
    use MyCanvas;
    use Wx qw (wxDefaultPosition wxDefaultSize wxLEFT wxRIGHT wxHORIZONTAL wxVERTICAL wxALL wxALIGN_TOP wxALIGN_CENTER wxALIGN_BOTTOM wxALIGN_LEFT wxALIGN_RIGHT wxEXPAND wxOK wxCANCEL wxID_OK);
    use vars qw (@ISA);
    @ISA=qw(Wx::Frame);
    use Wx qw( :color );
    sub new
    {
          my($classe)=shift;
          my $this=$classe->SUPER::new(@_);
    my( $splitter ) = $this->{SPLITTER} = SplitWindow->new( $this, -1 );      
    my ($LCanvas)=$this->{LCANVAS}=MyCanvas->new($splitter,-1,[0,0],[200,250],'Menu');
    my ($RCanvas)=$this->{RCANVAS}=MyCanvas->new($splitter,-1,[200,0],[400,250],'Corps');
     
    $this->{LCANVAS}->Show( 1 );
    $this->{RCANVAS}->Show( 1 );
     
    $LCanvas->SetBackgroundColour( Wx::Colour->new(255,255,255) );
    $LCanvas->SetCursor( Wx::Cursor->new( wxCURSOR_HAND  ) );
     
     
    #Définition des widgets
     
    $LCanvas->{'Bouton2'}=Wx::Button->new($LCanvas,-1,"Search");
    $LCanvas->{'Text'}=Wx::TextCtrl->new($LCanvas,-1,"");
     
    #Définition des box sizers
           $LCanvas->{'BoxSizer1'}=Wx::BoxSizer->new(wxVERTICAL);
           $LCanvas->{'BoxSizer11'}=Wx::BoxSizer->new(wxHORIZONTAL);
           $LCanvas->{'BoxSizer12'}=Wx::BoxSizer->new(wxHORIZONTAL);
     
    #Ajout des widgets dans le box size 11 (haut)      
          $LCanvas->{'BoxSizer11'}->Add($LCanvas->{'Text'},1,wxLEFT,0);
    #Ajout des widgets dans le box size 12 (bas)      
          $LCanvas->{'BoxSizer12'}->Add($LCanvas->{'Bouton2'},1,wxLEFT,0);
     
    #Ajout des deux box sizer dans le box sizer principal
     
          $LCanvas->{'BoxSizer1'}->Add($LCanvas->{'BoxSizer11'},1,wxALL,3);
          $LCanvas->{'BoxSizer1'}->Add($LCanvas->{'BoxSizer12'},1,wxALL,3);
     
          $LCanvas->SetSizer($LCanvas->{'BoxSizer1'});
    Et voici les packages SplitWindow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    package SplitWindow;
     
    use strict;
    use vars qw(@ISA);
    @ISA = qw(Wx::SplitterWindow);
    use Wx qw(:splitterwindow wxDefaultPosition wxDefaultSize);
    use Wx::Event qw(EVT_SPLITTER_SASH_POS_CHANGED);
     
    sub new()
    {
          my $class=shift;
          my( $this ) = $class->SUPER::new( @_, wxDefaultPosition, wxDefaultSize,
                                        wxSP_3D|wxSP_LIVE_UPDATE|wxSP_BORDER| wxSP_3DBORDER  );
          return $this;
    }
     
    1;
    et MyCanvas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    package MyCanvas;
     
    use strict;
    use vars qw(@ISA);
     
    @ISA = qw(Wx::ScrolledWindow);
    sub new {
      my( $class ) = shift;
      my( $this ) = $class->SUPER::new( @_[0,1,2,3], 0, $_[4] );
      return $this;
    }
    1;

    Pourquoi je n'arrive pas à placer mon bouton et mon textbox comme il faut.
    Il se superpose, comme ci il n'existait pas de sizer ???

    Pleaseee, Help me ???

    Merci beaucoup pour les réponses
    tout le monde est d'accord pour critiquer la pensée unique

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Bon ba j'ai résolu mon problème, tout simplement parce que j'avais oublié d'initialiser le splitwindow, comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $splitter->SplitVertically($LPane,$RPane);

    Voilà, bonne journée à tous !!
    tout le monde est d'accord pour critiquer la pensée unique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/08/2007, 09h02
  2. Réponses: 7
    Dernier message: 06/05/2007, 18h11
  3. problème de dessin dans une fenêtre
    Par Mat 74 dans le forum Windows
    Réponses: 8
    Dernier message: 12/04/2007, 11h44
  4. [GTKAda] Problème d'organisation dans une fenêtre
    Par Poseidon62 dans le forum Ada
    Réponses: 1
    Dernier message: 12/03/2007, 14h03
  5. Problème d'insertion d'image dans une fenêtre.
    Par Antigonos Ier Gonatas dans le forum Tkinter
    Réponses: 2
    Dernier message: 26/08/2006, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo