Informations générales
Modalités et sujets
Modalités : règlement
Sujets : sujetsGI_2021_v01.pdf
Rappel sur l'utilisation de GTK+ et Glade
- UTILISER GTK+ ET GLADE : voir l'exercice 1 du TP1 de « Développement Rapide d'interface », entièrement guidé avec sa vidéo associée
- CONFIGURER ECLIPSE ET VISUAL STUDIO POUR UTILISER GTK+ : voir l'exercice 1 du TP2 de « Développement Rapide d'interface »
Documentation (vitale pour le programmeur)
Tout au long de votre projet vous aurez besoin de vous documenter sur GTK+, et évenutellement GDK, pour connaître les fonctions de cette bibliothèque et savoir comment elles doivent être appellées :
- Tous les widgets : http://developer.gnome.org/gtk2/stable/gtkobjects.html
- Liste des principaux widgets (par ordre alphabétique) :
- GtkAboutDialog
- GtkAlignment
- GtkBuilder (ne sert qu'au moment de la création de l'interface)
- GtkButton
- GtkObject
- GtkEntry
- GtkFileChooserDialog (pour sélectionner un nom de fichier, à ouvrir ou pour enregistrer, sur le disque)
- GtkFilter (permet de filtrer les extensions des noms de fichier)
- GtkImage
- GtkLabel
- GtkRadioButton (qui possède aussi les propriétés et fonctions des GtkToggleButton)
- GtkSpinButton
- GtkTable
- GtkWidget (tous les composants possèdent les propriétés et les fonctions de GtkWidget)
- GtkWindow
- Autres composants (qui ne sont pas des widgets) :
- GdkPixbuf (pour charger une image depuis un fichier et affecter ensuite un GtkImage)
Conseils pratiques
Pensez à faire des régulièrement des sauvegardes (incrémentales) des fichiers de votre projet !!!
- Cela permet de ne pas perdre tout son travail en cas de mauvaise manipulation (suppression hasardeuse d'un fichier ou d'un répertoire, problème de disque, etc.)
- En cas de grosse erreur dans le code, cela peut permettre de revenir en arrière à une ancienne version qui était stable (i.e. qui fonctionnait) pour essayer de comprendre ce qui ne va plus, voire de repartir de nouveau depuis cette ancienne version.
Exemple de sauvegardes incrémentales :
- mon_super_projet-0.01.zip
- mon_super_projet-0.02.zip
- mon_super_projet-0.10.zip
- mon_super_projet-0.20-unstable.zip
- mon_super_projet-0.30-stable.zip
- mon_super_projet-0.90.zip
- mon_super_projet-1.00.zip
Compilez votre projet au fur et à mesure ! N'attendez pas la fin du projet pour compiler, sinon ca ne marchera jamais !!! Le programmeur doit compiler et tester son programme au fur et à mesure qu'il ajoute de nouvelles fonctions, qu'il fait des ajouts de code, …
Exemples de projets en C / GTK+
Exemple 1 : Appliquer des traitements sur des images
- Binaire : gtk_image_processing-1.00.zip (12,3 Mo)
- Démonstration : regarder (11'20) (18 Mo)
Exemple 2 : Un robot arroseur
- Sujet : sujet_robot_arroseur.pdf
- Binaires : ProjetRobotArroseur-bin-1.00.zip (5,2 Mo)
- Code source : non distribué
- Démonstration courte : regarder (3'40) (11 Mo)
- Démonstration détaillée : regarder (9'15) (14 Mo)
Exemple 3 : Un utilitaire de matrice
- Binaire : UtilitaireMatrice-bin-1.01.zip (5,1 Mo)
- Code source : UtilitaireMatrice-src-1.01.zip (Compatibilité : Windows XP et 7, GCC, Eclipse, Visual Studio 2010 - GNU/Linux (Debian 6 Squeeze))
- Rapport : documentation_utilitaire_matrice.pdf
- Démonstration 2012 : regarder (3'10) (7,8 Mo)
Aide pour utiliser les widgets GTK+
Aide 1 : Traitement d'image : GtkImage et GdkPixbuf
Exemple d'utilisation qui charge une image dans un GdkPixbuf, modifie des pixels, puis l'affiche dans un GtkImage
- Code source et binaire : gtk_image_example-1.03.zip (5,1 Mo)
(Compatibilité : Windows XP et 7, GCC, Eclipse, Visual Studio 2010 - GNU/Linux (Debian 6 Squeeze))
Aide 2 : Plateau d'images et animation : GtkTable, GtkImage et g_timeout_add()
Deux billes de billard se déplacent sur un tapis et rebondissent sur les bords du tapis. Si elles entrent en collision, alors elle rebondissent dans la direction opposée.
- Agrandir la fenêtre permet de se rendre compte qu'il s'agit simplement d'une la matrice d'images !
- Code source et binaire : gtk_table_example-1.00.zip (5,1 Mo)
(Compatibilité : Windows XP et 7, GCC, Eclipse, Visual Studio 2010 - GNU/Linux (Debian 6 Squeeze))
Aide 3 : Tracer une fonction : GtkImage et GdkPixbuf
Exemple qui montre comment utiliser un bitmap pour tracer des fonctions mathématiques, avec en exemple les deux fonctions Y=cos(X) et Y=sin(X)/2, tracées avec X allant de -6.0 à +6.0, et Y affiché entre -0.5 et +1.0
- Code source et binaire : gtk_cosinus_example-1.00.zip (5,1 Mo)
(Compatibilité : Windows XP et 7, GCC, Eclipse, Visual Studio 2010 - GNU/Linux (Debian 6 Squeeze))
Aide 4 : Capter les signaux du clavier : gtk_widget_add_events() et key_press_event
- Code source : gtk_keyboard_example-0.01.zip (3,5 Ko)
Aide 5 : Listes déroulantes : Combobox avec Glade
- Voir les 15 étapes Glade en images
- Code source : gtk_combobox_example-0.01.zip (3,1 Ko)
Aide 6 : Dessiner : GtkDrawingArea
- Dessiner sur un GtkDrawingArea
- Code source : gtk_drawingarea_example-0.01.zip (4,4 Ko)
Aide 7 : Afficher le contenu d'un fichier : GtkTextView
- Code source : gtk_textview_example-0.01.zip (3,3 Ko)