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 :

wxToolBar et CheckTool


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    Points : 21
    Points
    21
    Par défaut wxToolBar et CheckTool
    Bonjour,
    J'ai besoin de votre aide pour modifier une wxToolBar dont voici le 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
    pal = new wxToolBar(this, wxID_ANY, wxDefaultPosition, /*wxSize(20,20)*/wxDefaultSize, wxTB_VERTICAL | wxTB_FLAT /*| wxTB_DOCKABLE*/ | wxTB_NODIVIDER
      | wxTB_TEXT | wxTB_HORZ_LAYOUT);
     
     
      wxSpinCtrl* btn = new wxSpinCtrl(pal,ID_PalIntPoint,
                                    _(""),
                                    wxDefaultPosition, wxSize(40,20),
                                    wxSP_ARROW_KEYS,
                                    0,20,10, _T("wxSpinCtrl"));
     
      pal->SetToolBitmapSize(wxSize(48,48));
     
      pal->AddCheckTool(ID_PalZoom, _(""), palBitmaps[0], wxNullBitmap, _("Zoom\n\tUse: Wheel up & down"), _(""), NULL);
      pal->AddCheckTool(ID_PalRotation, _(""), palBitmaps[1], wxNullBitmap, _("Rotation\n\tUse: \n\t** Left click:  start rotation\n\t** Left click:  stop rotation\n\t** Right click: replace the object in his initial configuration"), _(""), NULL);
      pal->AddCheckTool(ID_PalLinesMod, _(""), palBitmaps[2], wxNullBitmap, _("Lines Display Mod"), _(""), NULL);
      pal->AddCheckTool(ID_PalColorMod, _(""), palBitmaps[3], wxNullBitmap, _("Color Display Mod"), _(""), NULL);
      pal->AddCheckTool(ID_PalIntPoint,_(""), palBitmaps[4], wxNullBitmap, _("Integer Points"), _(""), NULL); //on pourrait utiliser le addtool, et mettre wxITEm_NORMAL, ca épargne des lignes ds les methodes
      pal->AddCheckTool(ID_PalPicking,_(""), palBitmaps[8], wxNullBitmap, _("Picking"), _(""), NULL);
      pal->AddControl(btn); //j'ajoute mon spinCtrl
      pal->AddSeparator();
      pal->Realize();
    Comme vous le voyez, j'ajoute un spin contrôle au niveau de la toolBar et j'obtient ceci :


    (si l'image marche pas , voici le lien : http://picasaweb.google.com/Micro.mi...82537008068834

    Ce que j'aimerais, c'est pouvoir mettre le spin control juste à côte de mon CheckTOol PalIntPoint ( et non en dessous) et tout aligner. Voici une représentation de ce que j'aimerais obtenir :


    (http://picasaweb.google.com/Micro.mi...82540522550610)

    Je ne sais pas vraiment comment faire, si je dois créer un contenant ( ou sizer? ) et c'est pourquoi j'ai besoin de votre aide.
    Merci

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Il faut faire une composition de ton bitmap et du spinCtrl dans un wxPanel.

    Ton wxPanel tu lui ajoutes ton wxBitmap plus ton wxSpinCtrl et tu ne fais qu'un seul ajout "AddControl" du wxPanel dans ta toolbar.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    Points : 21
    Points
    21
    Par défaut re
    EN fait j'ai déjà mis mon bitmap ds le panel ave :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    palBitmaps[4] = wxBitmap(_("img/intpt.png"),wxBITMAP_TYPE_PNG);
    Mais le addcontrol me permet pas de mettre une image si?

    je vois pas trop comment faire...tu pourrais me donne run exemple stp
    merci

  4. #4
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Dans l'idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    wxPanel *tPanel = new wxPanel(pal, wxID_ANY);
     
    wxBoxSizer* tbSizer1;
    tbSizer1 = new wxBoxSizer( wxHORIZONTAL );
    tbSizer1->Add(new wxStaticBitmap(tPanel, wxID_ANY, palBitmaps[4]), 0, wxEXPAND, 0 );
    tbSizer1->Add(new wxSpinCtrl(tPanel,ID_PalIntPoint, _(""), wxDefaultPosition, wxSize(40,20), wxSP_ARROW_KEYS,0,20,10, _T("wxSpinCtrl")), 0, wxEXPAND, 0 );
     
     
    tPanel->SetSizer( tbSizer1 );
    tPanel->Layout();
     
    pal->AddControl(tPanel);
    Je n'ai pas exécuter le code.
    Mais le but est de placer le bitmap et le spin ctrl côte à côte dans un panel, et de donner cela à la toolbar.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    Points : 21
    Points
    21
    Par défaut re
    Le problème c'est que Addcontrol est de type AddControl(wxControl*) donc je peux pas mettre un nouveau panel...

  6. #6
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Oui exact, pour le coup, je ne vois pas 36 solutions, il faut faire ton propre control.
    Tu peux regarder l'exemple toolbar. Il y a le control "wxSearchCtrl" qui est une composition, il faut regarder dans le code des widgets, c'est bien plus compliqué que de tout placer dans un panel !

    Mais il semblerait que tu n'es pas le choix, si tu veux utiliser le composant toolbar.

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    Points : 21
    Points
    21
    Par défaut re
    OK, je vais voir ça, je posterais ma réponse dès que j'aurais fini

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    Points : 21
    Points
    21
    Par défaut re
    Je n'ai pas réussi à trouver une solution à ce problème...le type "wxSearchCtrl" n''est pas une composition, c'est un contrôle déjà définit (il suffit de le déclarer : wxSearchCtrl* rch = new wxSearchCtrl ...)...et je vois pas d'exemple dans les sample qui me permettent de résoudre mon problème :/

  9. #9
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Il faut aller fouiller dans le code wxWidgets (pas dans les exemples).

    wxSearchCtrl se compose de wxSearchTextCtrl et de wxSearchButton.

    Sinon il faut que tu refasses un équivalent de la toolbar ou tu trouves une autres bibliothèques identique à la toolbar qui peut prendre un panel.

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    Points : 21
    Points
    21
    Par défaut OK
    Merci pour le conseil,
    et ce code je le trouve ou?

  11. #11
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Les 2 fichiers dans le sdk
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include\wx\generic\srchctlg.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    src\generic\srchctlg.cpp

Discussions similaires

  1. Ajouter un wxControl à une wxToolBar
    Par atm0sfe4r dans le forum wxWidgets
    Réponses: 5
    Dernier message: 11/06/2009, 11h57
  2. wxToolBar et label
    Par micromich dans le forum wxWidgets
    Réponses: 12
    Dernier message: 30/06/2008, 17h57
  3. wxToolBar et images
    Par cfdev dans le forum wxWidgets
    Réponses: 3
    Dernier message: 23/08/2007, 16h19

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