Charger un fichier GTK+ [Résolu/Fermé]

Signaler
-
 cap'tain Sheeps -
Salut;
Je suis tout nouveau dans la programmation d'interface graphique, et j'aimerais savoir s'il existe un petit tuto, ou si vous pouvez m'aider à trouver le moyen d'avoir une sorte d'explorateur de fichier dans mon programme pour charger des fichiers et récupérer leur nom et leur destination (pas la peine de l'exécuter).
Voila je sais pas si j'ai été clair mais j'ai l'espoir que je l'ai été.
Merci d'avance !
Sheeps

5 réponses


Et pendant que j'y suis, j'ai un problème avec mon alignement de label.
voici mon code :
#include <stdlib.h>
#include <gtk/gtk.h>

int main(int argc,char **argv)
{
    GtkWidget * FenetrePrincipale = NULL;

    //ouverture de la librairie graphique GTK+
    gtk_init(&argc, &argv);

    //******************************************************************************************
    // Création de la fenêtre
    //******************************************************************************************
        FenetrePrincipale = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        g_signal_connect(G_OBJECT(FenetrePrincipale), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
        //titre de la fenêtre
        gtk_window_set_title(GTK_WINDOW(FenetrePrincipale), "Generateur de code Winapass5000");
        //taille de la fenêtre
        gtk_window_set_default_size(GTK_WINDOW(FenetrePrincipale), 700, 500);
        //positionnement de la fenêtre
        gtk_window_set_position(GTK_WINDOW(FenetrePrincipale),GTK_WIN_POS_CENTER);

    //******************************************************************************************
    // Création du contenu de la fenêtre
    //******************************************************************************************
        GtkWidget* BoxBienvenue;
        BoxBienvenue = gtk_vbox_new(TRUE, 1);
        GtkWidget* alignementBienvenue;
        alignementBienvenue = gtk_alignment_new(0.5, 1, 0, 0);
        gtk_container_add(GTK_CONTAINER(BoxBienvenue), alignementBienvenue);
        gtk_container_add(GTK_CONTAINER(FenetrePrincipale), BoxBienvenue);



        //***************************************************
        //Label de bienvenue
        //***************************************************
            GtkWidget* LabelBienvenue = NULL;
            gchar* TexteBienvenue = NULL;

            //Formalisation du texte
            TexteBienvenue = g_locale_to_utf8( "<span size=\"xx-large\"><b>Générateur Winapass5000</b></span>", -1, NULL, NULL, NULL);

            LabelBienvenue = gtk_label_new(TexteBienvenue);
            // Libération de la mémoire
            g_free(TexteBienvenue);

            //Formalisation grâce aux balises pango
            gtk_label_set_use_markup(GTK_LABEL(LabelBienvenue), TRUE);

            //Placement du Label dans BoxBienvenue en haut centré de la fenêtre
            gtk_box_pack_start(GTK_BOX(BoxBienvenue), LabelBienvenue, TRUE, TRUE, 0);


        gtk_widget_show_all(FenetrePrincipale);


    gtk_main();

    //fermeture de la librairie graphique GTK+
    return EXIT_SUCCESS;
}


Le truc, c'est que j'ai beau changer mes valeurs de mon gtk_alignment_new le programme en a strictement rien à f*** et me place toujour mon Layout au même endroit. Comme vous le remarquez, ca commence à me tapper sur les nerfs alors une aide serrait pour moi le plus grand des présents que l'on puisse m'offrir.
En vous remerciant,
Sheeps.

Bon en fait si je remplace mon label par un bouton je peux le positionner ou je veux.
Le truc c'est que j'ai besoin d'un label, et on dirait que gtk_alignment_new ne marche pas avec un label.
Quelqu'un saurait si il existe quelque chose qui ferrait la même chose que gtk_alignment_new mais aussi pour les labels (ou pourquoi cette fonction qui prend normalement un paramètre de widget * ne marche qu'avec un bouton)

Une réponse serrait la bienvenue.
Ne me dites pas que personne sur le forum n'a utilisé des Layout avec gtk+ quand même ! =)

Vu l'ennervement que ca me produit celui qui me répondra aurra donc un statut divin, alors n'hésitez surtout pas.

C'est bon j'ai enfin réussi

Pour ceux qui ont le même problème que moi, il faut mettre le label dans une frame principale (qui fera toute la fenêtre) et come ca on peut le positionner ou on veut dans la frame.

Reste donc plus que mon interrogation du premier post.
up et autre question:
J'arrive bien à positionner un layout mais si j'essaye d'en positionner un second, il me dit que je ne peux pas mettre deux alignment pour une même frame.
J'immagine qu'il me faudrait faire une sorte de tableau pour gérer mes widget, mais vu que je ne connais pas gtk...
Quelqu'un saurait-il donc ce qu'est l'équivalent d'un gridLayout pour gtk+ et pourrait m'expliquer concrètement son fonctionnement? Car, e, effet, je galère un peu avec cette librairie:
En swing c'était facile:
-je créer mon JPanel,
-Je dis à quoi il correspond (gridLayout, FlowLayout...)
-je l'add au panel souhaité.

Mais en gtk, on dirait que tout est différent.
Donc je sais que c'est beaucoup demandé, mais si quelqu'un pourrait m'expliquer le fonctionnement de gtkétape par étape comme je l'ai fais avec swing, ca me rendrait un grand service.
Je vous remercie d'avance.
Sheeps.

C'est bon en fait j'ai capté le mécanisme.

Et pour l'ouverture de fichier j'ai trouvé tout seul. Tout est la dedans (pour ceux qui ont le même soucis que moi) :

http://www.gtk-fr.org/wakka.php?wiki=PyLaSelectionDesFichiers

(La prochaine fois vous pourriez me répondre ca serrait simpa =))