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

 C++ Discussion :

WxWidgets Erreur de segmentation


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 115
    Points : 62
    Points
    62
    Par défaut WxWidgets Erreur de segmentation
    bonjour, j'ai un problème d'exécution de mon programme, lorsque je lance une fonction lié à un bouton ça me fait une Erreur de segmentation et je ne comprend pas pourquoi.

    Voici le code en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void MainFrame::OnOptTrait(wxCommandEvent& event)
    {
     
    	EpaisseurDialog *edlg = new EpaisseurDialog ( this, -1, wxT("Epaisseur") );
    	edlg->Slider_epaisseur->SetValue(epaisseurtraitcourante );
    	edlg->ShowModal();
    	epaisseurtraitcourante = edlg->Slider_epaisseur->GetValue();
     
    }
    voici le code du constructeur:
    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
     
    BEGIN_EVENT_TABLE(EpaisseurDialog, wxDialog)
    END_EVENT_TABLE ()
     
     
    EpaisseurDialog::EpaisseurDialog( wxWindow *parent, wxWindowID id, const wxString &title ) 
    : wxDialog( parent, id, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER )
    {
     
      wxBoxSizer *BSizer_tout = new wxBoxSizer( wxVERTICAL );
      wxBoxSizer *BSizer_gauche = new wxBoxSizer( wxVERTICAL );
      wxBoxSizer *BSizer_droite = new wxBoxSizer( wxVERTICAL );
      wxBoxSizer *BSizer_gd = new wxBoxSizer( wxHORIZONTAL );
     
       wxStaticText *SText_epaisseur = new wxStaticText( this, ID_TEXT_EPAISSEUR, wxT("Choisir la nouvelle epaisseur de trait:"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
       BSizer_tout->Add( SText_epaisseur, 0, wxALIGN_CENTRE|wxALL, 5 );
     
     
      TCtrl_epaisseur = new wxTextCtrl ( this, ID_CTRL_EPAISSEUR, wxT("1"), wxDefaultPosition, wxDefaultSize );
      // On ajoute les elements dans le sizer correspondant a la partie gauche
      BSizer_gauche->Add(TCtrl_epaisseur, 0, wxALIGN_LEFT|wxALL, 5 );
     
      wxSlider *Slider_epaisseur = new wxSlider( this, ID_SLIDER, 1, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL  | wxSL_LABELS  |wxSL_BOTTOM |
    wxSL_AUTOTICKS,  wxDefaultValidator, wxT("slider") );
     
     
      Slider_epaisseur->SetTickFreq(1, 1); // Mise en place de la fréquence des graduations
      Slider_epaisseur->SetTick(1);
     
      BSizer_droite->Add( Slider_epaisseur, 0,  wxALIGN_RIGHT|wxALL, 5 );
     
      BSizer_gd->Add( BSizer_gauche, 0, wxALIGN_CENTRE|wxALL, 5 ); 
      BSizer_gd->Add( BSizer_droite, 0, wxALIGN_CENTRE|wxALL, 5 ); 
     
      BSizer_tout->Add( BSizer_gd, 0, wxALIGN_CENTRE|wxALL, 5 );  
      wxButton *Bouton = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition );
      BSizer_tout->Add( Bouton, 0, wxALIGN_CENTRE|wxALL, 5 );
     
      this->SetAutoLayout( TRUE ) ;
      this->SetSizer( BSizer_tout );
      BSizer_tout->Fit( this);
     
      BSizer_tout->SetSizeHints( this);
    }
    voici les eurreurs que me donne gdb:
    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
     
    Program received signal SIGSEGV, Segmentation fault.
    0x080546db in MainFrame::OnOptTrait(wxCommandEvent&) ()
    #0  0x080546db in MainFrame::OnOptTrait(wxCommandEvent&) ()
    #1  0x00871a9f in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
        () from /usr/lib/libwx_baseu-2.8.so.0
    #2  0x00910209 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
        () from /usr/lib/libwx_baseu-2.8.so.0
    #3  0x009112d4 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) ()
       from /usr/lib/libwx_baseu-2.8.so.0
    #4  0x009113d3 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #5  0x00642d79 in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0
    #6  0x0128edcc in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
    #7  0x01281252 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
    #8  0x0129599d in ?? () from /usr/lib/libgobject-2.0.so.0
    pouvez vous m'expliquer d'où vient mon erreur?

    Merci de votre compréhension.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      wxSlider *Slider_epaisseur = new wxSlider( this, ID_SLIDER, 1, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL  | wxSL_LABELS  |wxSL_BOTTOM |
    wxSL_AUTOTICKS,  wxDefaultValidator, wxT("slider") );
    Ce code, dans le constructeur, signifie que tu initialise un variable locale au constructeur. Supprime le wxSlider* au début de la ligne, et ça devrait aller mieux

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    c'est exactement ça... merci Emmanuel Deloget pour ton aide

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

Discussions similaires

  1. [wxwidgets][wxSocketBase][erreure de segmentation]
    Par hansaplast dans le forum wxWidgets
    Réponses: 5
    Dernier message: 18/01/2006, 10h13
  2. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  3. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  4. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18
  5. Réponses: 1
    Dernier message: 16/05/2004, 17h56

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