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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    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 Expert
    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 : 46
    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
    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 averti
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    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 Expert
    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 : 46
    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
    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 averti
    Inscrit en
    Juin 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 63
    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 Expert
    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 : 46
    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
    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.

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