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 :

Créer un catalogue d'image


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37

    Informations forums :
    Inscription : Juin 2010
    Messages : 241
    Par défaut Créer un catalogue d'image
    Bonjour,
    je souhaite afficher l'ensemble des images d'un dossier dans un panneau latéral ( vbox par exemple) avec un bouton de scroll pour les faire défiler et éventuellement cliquer dessus pour en choisir une.

    Quelqu'un aurait des pistes pour faire cela ?
    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Je pense que GtkIconView est ce qu'il te faut

  3. #3
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Tu as aussi un exemple d'utilisation dans gtk-demo.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37

    Informations forums :
    Inscription : Juin 2010
    Messages : 241
    Par défaut
    Ok, j'ai essayé avec 2 images png et cela fonctionne.
    Petit remarque, j'aimerais afficher uniquement les icônes des images ( sinon cela prend trop de place).
    D'après la doc, j'ai mis : gtk_icon_view_set_item_width (GTK_ICON_VIEW(icon_view),50);
    Mais cela ne modifie pas la taille.
    Avec 10, j'ai même une erreur :
    (Test:2876): GLib-GObject-WARNING **: value "-2" of type `gint' is invalid or out of range for property `width' of type `gint'

    Ce n'est pas la bonne fonction ?

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    L'appel a l'air correct, mais sans contexte, difficile de t'en dire plus...

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37

    Informations forums :
    Inscription : Juin 2010
    Messages : 241
    Par défaut
    Alors voici le code que j'ai repris depuis http://www.gtkforums.com/about3103.html&highlight=

    J'ai simplement ajouter la commande de redimensionnement à la fin, mais elle n'a pas d'effect...

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    
    #include <gtk/gtk.h>
    
    /*
    GtkIconView Example
    gcc -o iconview iconview.c `pkg-config --libs --cflags gtk+-2.0`
    Reference: http://library.gnome.org/devel/gtk/stable/GtkIconView.html
    */
    enum
    {
      COL_DISPLAY_NAME,
      COL_PIXBUF,
      NUM_COLS
    };
    
    /* Create the ListStore and fill it with required data */
    GtkTreeModel *
    create_and_fill_model (void)
    {
      GtkListStore *list_store;
      GdkPixbuf *p1, *p2;
      GtkTreeIter iter;
      GError *err = NULL;
      int i = 0;
    
      p1 = gdk_pixbuf_new_from_file ("image1.png", &err);
                                /* No error checking is done here */
      p2 = gdk_pixbuf_new_from_file ("./image2.png", &err);
    
      list_store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, GDK_TYPE_PIXBUF);
    
      do {
        gtk_list_store_append (list_store, &iter);
        gtk_list_store_set (list_store, &iter, COL_DISPLAY_NAME, "./image1",
                            COL_PIXBUF, p1, -1);
        gtk_list_store_append (list_store, &iter);
        gtk_list_store_set (list_store, &iter, COL_DISPLAY_NAME, "Image2",
                            COL_PIXBUF, p2, -1);
      } while (i++ < 1);
    
      return GTK_TREE_MODEL (list_store);
    }
    
    int main (int argc, char *argv[])
    {
      GtkWidget *window;
      GtkWidget *icon_view;
      GtkWidget *scrolled_window;
    
      gtk_init (&argc, &argv);
    
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
      gtk_window_set_title (GTK_WINDOW (window), "Simple Icon View Example");
      gtk_container_set_border_width (GTK_CONTAINER (window), 10);
      gtk_widget_set_size_request (window, 600, 400);
    
      scrolled_window = gtk_scrolled_window_new (NULL, NULL);
      gtk_container_add (GTK_CONTAINER (window), scrolled_window);
      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
                                      GTK_POLICY_AUTOMATIC,
                                      GTK_POLICY_AUTOMATIC);
      gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
                                           GTK_SHADOW_IN);
    
      icon_view = gtk_icon_view_new_with_model (create_and_fill_model ());
      gtk_container_add (GTK_CONTAINER (scrolled_window), icon_view);
    
      gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view),
                                     COL_DISPLAY_NAME);
      gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), COL_PIXBUF);
      gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view),
                                        GTK_SELECTION_MULTIPLE);
     gtk_icon_view_set_item_width (GTK_ICON_VIEW(icon_view),50);
     
      gtk_widget_show_all (scrolled_window);
      gtk_widget_show (window);
    
      gtk_main ();
    
      return 0;
    }
    Une remarque aussi : suis-je obligé de charger les images une par une, ou est-ce que je peux indiquer le dossier, et toutes les images contenues dedans seront affichées ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37

    Informations forums :
    Inscription : Juin 2010
    Messages : 241
    Par défaut
    Bon, j'ai biaisé le redimensionnement de gtk_icon_view en le faisant manuellement avec un pixBuf.
    Sinon, quelqu'un à une idée pour charger un ensemble d'image ( autrement que une par une )?

Discussions similaires

  1. [C#/VS.Net 2003]Créer un tableau d'images
    Par marie mouse dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/09/2007, 15h18
  2. [Impromptu 7] Impossible de créer un catalogue d'extraits.
    Par marchand_de_sable dans le forum Cognos
    Réponses: 8
    Dernier message: 31/08/2007, 12h21
  3. Comment créer un catalogue type amazon
    Par Kapha dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 05/04/2007, 22h28
  4. Réponses: 5
    Dernier message: 08/01/2007, 07h52
  5. Créer une page par image ?
    Par Eliness dans le forum Langage
    Réponses: 10
    Dernier message: 01/01/2006, 17h34

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