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

wxWidgets Discussion :

Dessiner avec wxWidgets


Sujet :

wxWidgets

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 80
    Points : 59
    Points
    59
    Par défaut Dessiner avec wxWidgets
    Bonjour,

    j'ai une fenêtre contenant un wxSplitterWindow découpant la fenêtre en deux verticalement, et j'ai une wxListBox d'un coté et un wxPanel de l'autre sur lequel je désirerait dessiner un graphique de type camembert

    j'ai donc regardé ce tutoriel:
    http://chgi.developpez.com/wxwidgets/chap3/


    seulement, si je fait comme cela, rien ne s'affiche,

    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
     
    BEGIN_EVENT_TABLE(MyFrame, wxFrame)
         EVT_PAINT(MyFrame::OnPaint)
    END_EVENT_TABLE()
     
     
     
    void MyFrame::OnPaint(wxPaintEvent& evt)
    {
     
        wxPaintDC * MonDc = new wxPaintDC(this);
     
        MonDc->DrawRectangle(125,25,90,90);
     
        wxFont MaFont =  wxFont(20, wxSWISS , wxNORMAL, wxNORMAL, false, "Arial Black");
        MonDc->SetFont(MaFont);
        MonDc->DrawRotatedText("Bonjour",0,100,45);
     
        wxBrush MaBrush = wxBrush("RED",wxSOLID );
        MonDc->SetBrush(MaBrush) ;
        MonDc->DrawCircle(300,70,50) ;
     
        wxColour MaCouleur = wxColour(0,0,255);
     
        wxPen MonCrayon = wxPen(MaCouleur,10,wxSOLID);
        MonDc->SetPen(MonCrayon);
        MonDc->DrawLine(120,20,220,120);
        MonDc->DrawLine(220,20,120,120);
     
        delete MonDc;
     
    }

    et si je fait comme cela, cela dessine bien sur le panel mais sa efface le reste de la fenêtre puis lorsque l'on essaye de quitter le programme, le programme plante.

    wxPaintDC * MonDc = new wxPaintDC(panel);


    Pour résumer, il semblerait qu'on ne puisse dessiner dans une fenêtre que si il n'y a rien dedans, comme dans le tutoriel.


    Donc ma question est: comment faire pour dessiner sur un wxPanel, ou alors par quoi dois-je remplacer le wxPanel?


    Je programme avec devc++ sous windows et kdevelop sous linux.

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut

    Urgent

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 80
    Points : 59
    Points
    59
    Par défaut
    Oups, désolé

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut
    J'ai exactement le même problème que toi SuperPat, j'ai lu sur un autre post qu'il fallait redéfinir l'évènement OnPaint pour le wxPanel, est-ce la bonne solution?

    J'utilise wxFormBuilder pour créer mes interface et dans les events de mon wxPanel il me propose OnPaint, mais en fait c'est comme si c'était OnPaint sur mon Frame principale...

    A+
    dede

    EDIT : c'est bon en fait, j'ai trouvé la solution, il faut simplement connecté l'event au panel de cette manière (et en plus wxFormBuilder le fait ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_panel21->Connect( wxEVT_PAINT, wxPaintEventHandler( MainFrameGui::OnPaint ), NULL, this );

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,
    toujours le même problème, mais je n'ai pas compris la dernière explication.

    Je veux afficher un wxbitmap dans un wxPanel, sans créer de myPanel:wxPanel.

    pour ça il me faut "accéder" au onPaint de l'instance du wxPanel que j'ai créé (PanelCamera).

    Je dois donc faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panelCamera->Connect(wxEVT_PAINT, wxPaintEventHandler(MainFrameGui::OnPaint ), NULL, this )
    c'est ça? mais je le met où?
    merci d'avance!

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    j'ai fini par éditer le fichier généré par formbuilder... au moins ça marche.

Discussions similaires

  1. Logiciel de dessin réalisé avec wxWidgets
    Par bibi9 dans le forum wxWidgets
    Réponses: 12
    Dernier message: 08/09/2009, 18h28
  2. Dessiner un graph avec wxwidget.
    Par EJekT4 dans le forum wxWidgets
    Réponses: 1
    Dernier message: 26/10/2006, 15h07
  3. dessiner avec wxWidgets
    Par [Hugo] dans le forum wxWidgets
    Réponses: 2
    Dernier message: 15/09/2006, 22h55
  4. Réponses: 1
    Dernier message: 26/02/2005, 12h55
  5. [debutant]probleme avec wxwidgets
    Par iwky dans le forum wxWidgets
    Réponses: 11
    Dernier message: 23/01/2005, 20h23

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