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 :

Comment faire le design de mon interface


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau Candidat au Club
    Comment faire le design de mon interface
    bonjour
    j'ai un projet C qui consiste à faire une application desktop
    nous travaillons sur Ubuntu 18.04
    j'ai fait mes interfaces avec glade 2.12
    mais maintenant je suis bloqué !

    je sais pas comment faire le design , comment ajouter un arrière plan , comment ajouter une fenêtre mapview !?
    je comprends pas vraiment est ce que je dois installer un autre logiciel ou bien c'est du code ?
    et , si il y a un code , c'est ou exactement je dois le mettre ! ? dans le fichier callbacks.c ou dans le fichier fonctions.h ou bien dans un autre fichier ?
    j'ai besoin d'une réponse détaillée pas à pas juste pour comprendre le principe .
    merci d'avance .

  2. #2
    Expert confirmé
    Bonjour.

    Pour commencer tu peux regarder le tutoriel sur Glade. Le lien est dans mon adresse plus bas. Tu as un exemple pas à pas.
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  3. #3
    Nouveau Candidat au Club
    merci pour votre réponse
    je suis débutant, j'ai pas trouvé vraiment ce que je cherche ,
    j'ai déjà fait mes interfaces graphique et j'ai généré le code source ,
    mais maintenant je suis bloqué .
    1) je vais faire un arrière plan pour mes fenêtres , changer les couleurs , ajouter une mapview .
    je sais pas ou je dois ajouter le code ( emplacement exacte , dans quel fichier ? )

    2) par exemple dans les liens que vous avez m'envoyé , j'ai trouver un tuto "comment faire votre gtkwidget"
    c'est bien mais j'étais bloqué ou je dois ajouter ce code ?
    quel sont les modifications que dois faire ?
    j'ai consulter YouTube mais rien est utile pour moi , la plupart des vidéos et tuto sont à propos glade 3 et PyGTK .

  4. #4
    Expert confirmé
    Je viens de me rendre compte que tu travailles avec une version de Glade très obsolète !

    Je suis sous Ubuntu 20.10 avec la version Glade 3.22.2. Utilises-tu Gtk+ v2 ou v3 ?

    Parce que si tu utilises la version 2 il va falloir mettre les mains dans le cambouis pour redéfinir la cosmétique d'un GtkWidget. Si tu utilises la version 3 Gtk+ est en train de mettre en place la gestion de cette même cosmétique via les CSS.

    Pour ton histoire de mapview je ne vois pas vraiment ce que tu veux dire. Tu veux insérer une image, un espace de dessin ou carrément une cartographie type GoogleMap ?

    Peux-tu nous montrer un peu de ton code histoire de voir où tu en es ?
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  5. #5
    Nouveau Candidat au Club
    quel fichier exactement je vais vous montrer ?



  6. #6
    Expert confirmé
    À priori tu génères du code source depuis ton fichier glade. C'est une mauvaise approche. La preuve en est que tu ne comprends pas à quoi servent tous ces fichiers. Travailler en plus avec Gtk+v2 alors que tu débutes avec cette bibliothèque est, me semble-t-il, une erreur. Autant utiliser Gtk+ v3. L'approche est la même surtout lorsqu'on part de zéro.

    Ceci étant avec Gtk+ il ne faut pas auto générer du code. Tu crées ton interface avec Glade. Tu nommes les widgets auxquels tu désires accéder et tu génères un fichier xml xxx.glade.

    Ensuite tu crées un fichier main.c dans lequel tu vas charger ce fichier xxx.glade avec les outils GtkBuilder fournis. Typiquement guint gtk_builder_add_from_file (GtkBuilder *builder, const gchar *filename, GError **error);

    Sans compliquer l'affaire tu récupères les widgets qui t'intéressent avec la fonction GObject *gtk_builder_get_object (GtkBuilder *builder, const gchar *name);

    De là tu peux y connecter les callbacks de ton choix avec les signaux correspondants grâce à la fonction g_signal_connect(instance, detailed_signal, c_handler, data);

    Essayes déjà cette démarche avant de vouloir aller plus loin.

    Une dernière remarque.
    Débuter avec une bibliothèque graphique en utilisant d'entrée un designer, ce n'est pas la meilleure des choses. Il vaut mieux essayer de construire son interface directement avec du code source. C'est plus long mais ca a le mérite de te faire apprendre les arcanes de celle-ci. Une fois que tu as compris comment elle fonctionne alors tu peux te simplifier la vie en passant par Glade. Ceci est mon point de vue. Ce n'est pas parole d'Évangile bien entendu .
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  7. #7
    Nouveau Candidat au Club
    merci beaucoup Gerald votre réponse est très utile

###raw>template_hook.ano_emploi###