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 :

interface graphique gtk


Sujet :

GTK+ avec C & C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut interface graphique gtk
    Bonjour,

    Je suis en école d'ingénieur et il se trouve que je dois rendre un projet informatique en c avec un gros travail sur une interface graphique.

    Tout d'abord une remarque :

    Je suis absolument alergique à toute forme de programation, c'est donc un problème !!

    Première question :

    Est ce que je peux trouver un programme pour créer de manière intuitive (à la manière d'un éditeur de site web genre dreamweaver) des interface graphiques et qui en bonus (tt comme DW sort le code html) me sort le code en c ??

    Deuxième question :

    SI la réponse à la première question est négative, il va donc falloir que je code à la main (sic !! pauvre de moi!! oh rage !! oh desesp... vous aurez compris je pense).

    Comment faire pour créer une fenêtre ayant plusieurs compartiments (6) pour y ranger des objets (par cliqué glissé entre les sus dit compartiments soit dit en passant)?

    Chaque compartiment doit avoir un intitulé.

    Comment intégrer le menu que l'on a dans le tuto du meme nom dans ce programme ?


    Troisième question

    Vous vous doutez bien que mon prgramme ne devra pas seulement être une interface graphique, mais faire quelque chose (saisie automatique, recherche ..).

    Donc comment faire pour intégrer ces bouts de code qui "font tourner le truc" dans mon programme final ?


    Je vous demande svp de ne pas me renvoyer aux tuto (ni à mes cours), j'en ai essayé un certain nombre, mais apres environ 15h passé dessus ma seule production que je sais réaliser reste une fenêtre vide (en copiant collant le code !!! ). (ie) je ne comprend pas du tout les concept associé derrières (too bad !!)

    voila je vous remercie d'avance pour vas nombreuses réponses j'en suis sûr.

    Flo

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par muskachew Voir le message
    Bonjour,
    je ne comprend pas du tout les concept associé derrières (too bad !!)
    Flo
    mdr,

    en fait tu veux qu'on te ponde le truc?

    Roms

  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
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par muskachew Voir le message
    Est ce que je peux trouver un programme pour créer de manière intuitive (à la manière d'un éditeur de site web genre dreamweaver) des interface graphiques et qui en bonus (tt comme DW sort le code html) me sort le code en c ??
    Tu as des logiciels de construction d'interface graphique comme glade ou gazpacho sous Linux. Ils te permettent de créer ton interface graphiquement. Ensuite il te suffit d'accéder dans ton programme aux "widgets" (les boutons, champs de saisie, cases à cocher, etc.)
    http://franckh.developpez.com/tutoriels/gtk/gtkbuilder/

    Mais il ne faut pas rêver, pour avoir quelque chose au final, il va te falloir t'ôter les doigts du cul. Au mieux tu peux espérer avoir en dix lignes de code un programme qui se lance, t'affiche l'interface graphique, mais ne fait rien. Et comme tu ne trouveras personne ici pour faire tes devoirs, tu vas devoir t'y mettre sérieusement... Donc je te conseille de te remettre à lire tes tutoriels, et à poser des questions ici quand tu es bloqué sur des questions en GTK (tu es censé avoir compris un minimum tes cours de C).

    C'est quoi ton projet, un morpion ?

    Citation Envoyé par muskachew Voir le message
    Comment faire pour créer une fenêtre ayant plusieurs compartiments (6) pour y ranger des objets (par cliqué glissé entre les sus dit compartiments soit dit en passant)?

    Chaque compartiment doit avoir un intitulé.

    Comment intégrer le menu que l'on a dans le tuto du meme nom dans ce programme ?
    Si tes cases sont destinées à contenir des objets de même taille :
    http://library.gnome.org/devel/gtk/stable/GtkTable.html
    Et dedans tu mets ce dont tu as besoin :
    http://library.gnome.org/devel/gtk/stable/ch02.html
    Tu n'as pas une ligne de code à taper pour ça, même pour le menu, tu peux tout faire via glade.

    Citation Envoyé par muskachew Voir le message
    Vous vous doutez bien que mon prgramme ne devra pas seulement être une interface graphique, mais faire quelque chose (saisie automatique, recherche ..).

    Donc comment faire pour intégrer ces bouts de code qui "font tourner le truc" dans mon programme final ?
    Et bien là ça devient de la programmation... Il te faut déjà savoir ce que tu veux faire, et ensuite trouver les fonctions qui te permettent de le faire, en parcourant la liste des fonctions disponible pour l'objet sur lequel tu veux agir.

    Il te faudra lire les tutoriels pour te familiariser avec les notions de signal, de fonction de rappel (callback), et de propriété d'un objet. Par exemple le signal "clicked" est généré quand on clique sur un bouton. Connecter un signal, c'est appeler g_signal_connect ou une autre fonction de ce genre pour dire à GTK que tu veux être prévenu lors de cet évènement (bouton cliqué). Tu fais la connexion entre le signal et la callback associée. La callback c'est la fonction que GTK doit appeler quand l'évènement se produit (c'est à dire que signal est activé, ou, en d'autres termes, quand l'utilisateur a cliqué sur le bouton). Et c'est dans cette callback que tu fais le traitement en réponse à l'évènement qui s'est produit.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut pb récup code
    Rebonjour

    je vous remercie de cette réponse, toutefois avec glade 3, comme vous le savez on ne récupère qu'un fichier xml (que je ne sais pas du tout manipuler par ailleur).
    donc je veux réupérezr le code c (ce que l'on peux faire directement avec la version 2), pour ca j'ai regardé le tutoriel que vous m'avez envoyé, mais je ne comprend pas vraiment comment faire pour convertir le fichier xml en un code en c.

    donc je voulais simplement savoir si vous aviez la version 2 de glade sous windows parceque je ne l'ai trouvé que sous linux et ca m'embete un petit peu d'instaler ubuntu juste pour glade 2 !!

    voila ou si vous avez un meilleure idée, en tout cas merci pour votre réponse qui j'en suis sur me permettra de progresser bcp plus vite.

    Flo

  5. #5
    Invité
    Invité(e)
    Par défaut Encore toi !
    Alors mon cher Muskachew comme on se retouve
    tu m'avais traité de connard sur un site tu te rapelle
    mais de nous deux qui l'est le plus
    toi tu n'es meme pas fichu d'avoir le courage de coder ton propre logiciel tu nous pose des questions on essaie de te repondre et toi en remerciment tu traite le monde de connard
    j'ai meme trouvé la solution a ton problème
    un nouveau logiciel qui fait a peu près ce que tu veux mais pas totalement
    mais je t'assure que c'est très puissant et cela vient de sortir il n'y a meme pas trois jours mais comme tu m'a traité de connard je crois que vais gardé ce logiciel et le tutoriel qui l'accompagne pour moi
    et je t'assure que tu as fait là une grosse erreur en insultant quelqu"un qui veut tout simplement t'aider
    bon bye et porte toi bien
    au moins moi je suis bien élévé

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Citation Envoyé par muskachew Voir le message
    Rebonjour

    je vous remercie de cette réponse, toutefois avec glade 3, comme vous le savez on ne récupère qu'un fichier xml (que je ne sais pas du tout manipuler par ailleur).
    donc je veux réupérezr le code c (ce que l'on peux faire directement avec la version 2), pour ca j'ai regardé le tutoriel que vous m'avez envoyé, mais je ne comprend pas vraiment comment faire pour convertir le fichier xml en un code en c.
    Le tutorial que t'as donné liberforce t'explique comment exploiter ce fichier xml dans ton code sans recourir à de la génération de code C. Je t'invite à le relire et à passer du temps dessus pour bien le comprendre, et à poser des questions précises à son sujet si vraiment tu ne t'en sors pas.

  7. #7
    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
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par muskachew Voir le message
    je vous remercie de cette réponse, toutefois avec glade 3, comme vous le savez on ne récupère qu'un fichier xml (que je ne sais pas du tout manipuler par ailleur).
    donc je veux réupérezr le code c (ce que l'on peux faire directement avec la version 2), pour ca j'ai regardé le tutoriel que vous m'avez envoyé, mais je ne comprend pas vraiment comment faire pour convertir le fichier xml en un code en c.
    La génération de code C à partir de glade est obsolète, il ne faut plus l'utiliser. Le code généré est trop difficile à maintenir, et si tu veux faire des modifications après coup, tu es coincé. C'est pour ça que la solution à utiliser est d'utiliser un fichier xml externe, le lire dans ton programme et ajouter les actions

    Je ne te donnerai pas d'infos sur la génération de code C via glade parce que :
    1. c'est une mauvaise pratique, obsolète qui plus est
    2. ça sent le gars qui veut générer du code à tout prix juste pour faire croire qu'il a écrit chaque ligne du code généré, et c'est tout pourri
    3. tu as besoin de 2 lignes de code pour charger le fichier xml, et une commande (toujours la même) pour récupérer chacun des objets que tu as à manipuler. Si tu ne veux même pas te donner la peine de faire ça alors qu'on peut difficilement faire plus simple, alors on ne peut rien pour toi.

    Aider les gens qui cherchent à apprendre ok, aider les gens qui ne veulent pas s'impliquer un minimum, pas d'accord. Une bonne note ça se mérite, et là en gros tu veux une bonne note en ne foutant rien... Désolé mais c'est pas ma philosophie de la vie.

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    La nouvelle mode est au XML, si tu veux une génération C correcte met toi à Vala, apprend puis au moment de la compilation arrête toi à la transformation du code Vala en C mais ce n'est pas t'aider si c'est pour des devoirs et si c'est pour de la rapidité de production préfère soit Vala soit les XML

  9. #9
    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
    Points : 2 002
    Points
    2 002
    Par défaut
    C'est surtout que si il a un projet à faire en C, se mettre à Vala va pas franchement l'aider...

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut code c
    slt,

    alors en fait le projet on doit le faire en c donc je suppose que charger un fichier xml dans un projet c, les prof vont pas forcément apprécier, je veux bien vous croire quand vous me dites que c'est obsolète que c'est pas bien mais bon, le langage est pas vraiment négociable !!

    Je pensais pas faire croire que j'ai tapé le code moi même, c'est assez con et bcp trop flag, mais je (en fait on est trois, et malheureusement je dois être le plus qualifié niveau prog !!!) dois rendre le projet la semaine prochaine donc c'est tendu !!

    alors j'ai utilisé glade 2 ac un pote qui avait ubuntu sur son portable et j'ai pris le code que me sort glade, ca marche !! donc c'est cool.

    Seulement j'ai pas compris comment ca se passe pour executer un truc genre quand je clique sur fichier-> nouveau pour que ca fasse quelquechose quoi !!
    Je me doute que faut aller triffouiller dans la fct callback mais je sais pas trop comment.

    Ensuite, quand à ceux qui me dise qu je veux rien branler, la programation c'est pas mon truc, je capte pas et j'aime pas d'autant plus que j'y ai passé du temps et que j'y arrive pas !!
    Exemple : j'ai passé 5 heures sur le tuto le plus basique de gtk pour me rendre compte que j'avais que fait du copié collé du code parceque je comprend pas !
    Alors si vous voulez en plus m'expliquer les tuto je vous remercie mais ca risque d'etre du boulot !!

    En gros j'ai essayé le tuto pour récup le fichier xml, mais au bout de 3 lignes j'avais décroché, je comprenais plus ce que le tuto me disais !!


    Donc en fait je vous demande juste de m'expliquer où faut aller triffouiller dans le code pour faire ce que je veux et aussi comment créer mon biiiip de strip !!! (c'est une étiquette de "carton electronique" ac des info dessus et que je passe de fenetre en fenetre, mais cette étiquette (pas au sens prog du terme!!!) c'est pas une fenetre et je ne sais pas comment faire.)

    Merci

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    bon je vais vous expliquer ce que je capte pas ce sera plus constructif

    dans le tuto glade gtk builder

    1/c'est quoi cette histoire de python ???
    2/ensuite j'ai dl glade j'ai installer ce putain de boa et la je veux lancer glade à partir du repertoir bin et la ce !%*$^$ me sort "le pt d'entrée de procédure g_assertion-message_expr est introuvable dans la bibliothèque de lien dynamiques libglib-2.0-0.dll" autant dire du chinois !! et ça a tendence à me tendre !!! :/
    3/ j'ai l'impression par la suite que faut taper autant de lignes de code que si j'avais fait le truc à la main !!

    ca veux dire quoi ca : Il faut commencer par initialiser un pointeur de type GtkBuilder avec la fonction gtk_builder_new puis ensuite, charger le fichier XML avec la fonction gtk_builder_add_from_file

    A partir de là, nous pouvons récupérer des pointeurs sur les différents widgets de l'interface par le biais de la fonction gtk_builder_get_object pour un widget particulier ou bien gtk_builder_get_objects pour récupérer la liste de tous les widgets !

    et dans mon appli j'ai plus que deux boutons !! j'ai aussi un menu par ex, des options ...

    voila

    Flo

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    ah oué au cas où : j'utilise windows vista.

  13. #13
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Salut,

    Citation Envoyé par muskachew Voir le message
    1/c'est quoi cette histoire de python ???
    Python qui est un langage interprété et est utilisé pour le script de transformation du XML glade en XML pour GtkBuilder, c'est aussi simple que ca

    Citation Envoyé par muskachew Voir le message
    2/ensuite j'ai dl glade j'ai installer ce putain de boa et la je veux lancer glade à partir du repertoir bin et la ce !%*$^$ me sort "le pt d'entrée de procédure g_assertion-message_expr est introuvable dans la bibliothèque de lien dynamiques libglib-2.0-0.dll" autant dire du chinois !! et ça a tendence à me tendre !!! :/
    Déjà évite ce genre de mots (voir souligné )... Pour en revenir à nos moutons, tu as peut-être installé GTK+ à la main comme dans le tutos de nicolas jospeh mais ca marche impec sous Code::Block, pour pouvoir utiliser les runtime en dehors de cet EDI, il te faut ajouter le chemin d'installation de GTK+ dans la variable d'environnement PATH du système (j'espère que t'es pas trop largué ) par exemple chez moi c'est C:\CodeBlocks\MinGW\bin\ !

    Citation Envoyé par muskachew Voir le message
    3/ j'ai l'impression par la suite que faut taper autant de lignes de code que si j'avais fait le truc à la main !!
    Nan pas vraiment car tu ne tapes aucune ligne pour créer l'interface ce qui t'épargne une tache colossale si tu dois créer une très grande application pour 2 boutons et un petit menu tu pourrais t'en passer et ca te ferais de l'entraînement. J'ai toujours conseillé d'apprendre GTK+ en codant à la main avant de passer par un RAD comme Glade mais, pour apprendre confortablement GTK+ il faut déjà assez bien maîtriser le C standard

    Citation Envoyé par muskachew Voir le message
    ca veux dire quoi ca : Il faut commencer par initialiser un pointeur de type GtkBuilder avec la fonction gtk_builder_new puis ensuite, charger le fichier XML avec la fonction gtk_builder_add_from_file
    A partir de là, nous pouvons récupérer des pointeurs sur les différents widgets de l'interface par le biais de la fonction gtk_builder_get_object pour un widget particulier ou bien gtk_builder_get_objects pour récupérer la liste de tous les widgets ![/QUOTE]
    Bin je pense que ca ne peut pas être plus clair que ca, tu déclares un pointeur soit ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GtkBuilder  *  p_builder   = NULL;
    et tu l'initialises plus loin comme le montre mon exemple (c'est moi qui ai écrit le tutoriel) avec la fonction gtk_builder_new soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p_builder = gtk_builder_new ();
    Voilà

  14. #14
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut re gtk
    ok merci

    gtk je l'ai installé automatiquement donc je vais aller vérif que la variable path est bien modifiée.

    ensuite je vais un peu regarder de plus près cette histoire de xml, mas pas trop, j'ai réussi à récup le code c de mon appli ac glade 2, et à modifier à la main ensuite ce que je voulais (taille centrage)

    Mon pb c'est plus ac les callbacks !! je sais que c'est la bas dedans qu'on appelle les fct dont on a besoin (exemple fct enregistrer quand on clique sur le bouton du meme nom), mais je sais pas trop comment insérer ces sus dites fct.

    Ensuite ca me génère un callback.c et un .h pkoi ??

    enfin j'ai un support.c et un support.h et je vois pas trop à quoi sert ces fichiers ... une explication peut etre ?

    ensuite ca parle de pixmap dans ces support.h/.c c'est quoi ? je peux y virer pour alléger le truc ?


    Pour finir je veux créer un conteneur qui ne soit pas une fenetre, je m'explique :
    quand on cliquera sur new, ca devra placer un strip (le petit carton elec ac des zones de txt à remplir) dans la première scrolledbar window.
    Donc je suppose qu'il faut que je créer une fct strip, la je croi que je vais pas pvr utiliser glade ca risque d'être trop compliquer à récup ce que je veux et seulement ce que je veux.

    donc comment faire ? j'ai pensé créer une table 1x1 (comment faire !!) et mettre une image dedans (en arrière plan en gros) et redécouper cette image en table 4x2 pour y insérer 5 zones de txt (qui serons les donné que je sauvegarderai !!)
    et ensuite faire une fct new qui fera appel à cette fct en dessus
    Je pense que c'est pas une trop mauvaise idée, mais je n'ai aucune idée de comment le réaliser et mes codétenus de meme (j'ai encore passé deux heures cet aprem sur un tuto et j'arrive tjr pas a reproduire de moi meme une fenetre toute simple, ca me fait un peu passé pour un débile profond en info, mais ca doit pas être éloigné de la vérité !! arf)

    Merci d'avance

    Flo

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/03/2008, 17h19
  2. Développement interface graphique GTK+
    Par cupidette92 dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 09/03/2007, 18h59
  3. Interface Graphique av GTK+
    Par insa59 dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 23/02/2007, 13h33
  4. Interface graphique pour projet gtk en C sous Linux
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 12/02/2007, 14h28
  5. Interface graphique GTK en C sous Linux
    Par jbjweb dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/07/2006, 15h19

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