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

GTK+ avec C & C++ Discussion :

[GtkComboBox/OCaml] How to use ?


Sujet :

GTK+ avec C & C++

  1. #1
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut [GtkComboBox/OCaml] How to use ?
    Bonjour,
    je code en Objective Caml et j'aimerais utiliser un GtkComboBox alias GEdit.combo_box pour lablGTK. Je ne trouve malheureusement aucune information sur Internet (rien hormis les méthodes de ladite classe).

    Quelqu'un pourrait-il m'expliquer comment ceci fonctionne ? Merci.

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bonjour,
    j'ai fini par trouver comment faire. Mais il me semble qu'il n'existe réellement de documentation concernant GEdit.combo_box. Il m'a falu fouiller dans les rapports de bugs de lablgtk ...

    Voici comment faire pour ceux qui trouverait ce post via une recherche :
    Il existe une fonction GEdit.combo_box_text ~strings:strlist () créant une combo_box à partir de la string list strlist.
    Voici ensuite comment manipuler ladite combo_box. Explication par exemples :

    Code OCaml : 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
     
    (** Récupération de l'index de l'item sélectionné de combo **)
    let combo_index combo =
       let combo_box,_ = combo in
       combo_box#active
       ;;
    -> int
     
    (** Récupération du texte de l'item selectionné de combo **)
    let combo_text combo =
       let combo_box,((store:GTree.list_store),(column:string Gtree.column)) = combo in
       let first = store#get_iter_first in
       match first with
          | Some iter ->
             let index = ref combo_box#active in
             while !index>0 && store#iter_next iter do index := !index-1 done;
             if not (store#iter_is_valid iter)
             then None
             else Some (store#get ~row:iter ~column)
          | None -> None
       ;;
    -> string option
     
    (** Suppression des items du combo **)
    let combo_clear combo =
       let _,((store:GTree.list_store),_) = combo in
       store#clear ()
       ;;
    -> unit
     
    (** Ajout d'une liste de string à postiori **)
    let combo_add_strings combo strlist =
       let combo_box,((store:GTree.list_store),(column:string Gtree.column)) = combo in
       let fill label =
          let row = store#append () in
          store#set ~row ~column label
       in
       List.iter fill strlist;
       combo_box#set_active 0
       ;;
    -> unit


    Vous trouverez dans la doc générée tous les détails pour faire ce que vous voulez avec des combo_box simples (que du text).
    Petit détail : widget utilisable qu'avec lablgtk2.4+

    Bonne journée !

    Ho, si quelqu'un sait comment activer la coloration synthaxique pour caml, qu'il me fasse signe !

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    Vous trouverez dans la doc générée tous les détails pour faire ce que vous voulez avec des combo_box simples (que du text).
    Petit détail : widget utilisable qu'avec lablgtk2.4+
    En fait les combo box sont basées sur le même modèle que les GtkTreeView : les GtkTreeModel.

    En utilisant les fonctions suffixé par _text, GTK+ créé simplement un modèle avec une colonne de type texte.

    Un tutoriel sur les tree view avec OCaml : http://plus.kaist.ac.kr/~shoh/ocaml/...view-tutorial/

    Citation Envoyé par prgasp77 Voir le message
    Ho, si quelqu'un sait comment activer la coloration synthaxique pour caml, qu'il me fasse signe !
    En utilisant [code=Caml] comme tu l'as fait, il semble juste y avoir un problème avec la coloration des commentaires

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    En fait les combo box sont basées sur le même modèle que les GtkTreeView : les GtkTreeModel.
    [...]
    Un tutoriel sur les tree view avec OCaml : http://plus.kaist.ac.kr/~shoh/ocaml/...view-tutorial/
    Oui, je l'ai lu. Mais pour de simples GUIs, je trouve le système bien lourd. Il aurait été facile de créer une classe surcouche de GEdit.combo_box s'utilisant (pour l'utilisateur/programmeur) sans système Model/View/Controller ...
    Il existe toujours les GEdit.combo, mais elles sont nettement moins belles, n'est-ce pas ?

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    Oui, je l'ai lu. Mais pour de simples GUIs, je trouve le système bien lourd. Il aurait été facile de créer une classe surcouche de GEdit.combo_box s'utilisant (pour l'utilisateur/programmeur) sans système Model/View/Controller ...
    C'est justement le but de combo_box_text, simplifier l'utilisation lorsqu'on a besoin d'une liste déroulante avec du texte.

    La doc de lablgtk ne semble pas complète, tu as toutes les fonctions dans la doc de GTK+ :


    Citation Envoyé par prgasp77 Voir le message
    Il existe toujours les GEdit.combo, mais elles sont nettement moins belles, n'est-ce pas ?
    Ce widget est obsolète, il est prévu de faire du vide dans les fonctions obsolètes (il est déjà possible de les supprimer lors de la compilation) donc très fortement déconseillé

  6. #6
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par gege2061 Voir le message


    J'ai tout fait à la main ... ça me fera les pieds ! Et non, la doc lablgtk n'est pas complète (loin de là). Mais il y a pire : libgeotiff (pas de doc ).

    Bon, fini le boulot pour ajourd'hui, trop de déceptions. Bonne soirée.

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

Discussions similaires

  1. LSMW How to use transfer record
    Par rawani dans le forum SAP
    Réponses: 1
    Dernier message: 23/09/2014, 14h45

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