Glade

Fermé
i'mlost Messages postés 8 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 19 décembre 2012 - 17 déc. 2012 à 17:36
i'mlost Messages postés 8 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 19 décembre 2012 - 17 déc. 2012 à 17:42
Bonjour,

je suis en première année d'école d'ingé généraliste
et si jusqu'à présent je trouvais les cours et TD de programmation faciles
j'ai vite arrêté de le penser en m'attaquant au projet que l'on doit rendre ^^

en gros jusqu'à présent on codait sur notepad++ et des programmes basiques (affichage de bonjour, trouver la valeur la plus grande, calculs etc.. )

et maintenant on passe sur visualstudio pour créer des interfaces avec glade-3

voilà ce que je dois obtenir à la fin de mon projet:
https://imageshack.com/

c'est déjà plus le même niveau d'un coup ^^'

pour l'instant j'essaie déjà d'arriver à ce modeste résultat:
https://imageshack.com/

j'ai donc, sur les conseils du professeur, commencé par chercher à arriver à ce résultat sans le label (pour le rajouter plus tard)

ce qui me donne sur glade:
http://hpics.li/7b4f414

je pense avoir tout bon pour ce qui est des démarches sur glade

par contre sur visualstudio je suis totalement perdu

je suis arrivé tant bien que mal à obtenir main.c callbacks.h et callbacks.c comme suit:

main.c:
#include <gtk/gtk.h>
#include "callbacks.h"

GtkBuilder *builder;

int main (int argc, char *argv[]) {
  GtkWidget  *window1;

  /* Initialisation de GTK */
  gtk_init (&argc, &argv);

  /* Creation des widgets de l'interface a partir du fichier XML de Glade, grace au builder GTK */
  builder = gtk_builder_new ();
  gtk_builder_add_from_file (builder, "Flexion_poutre.glade", NULL);

  /* Recuperation du widget de la fenetre principale */
  window1 = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));

  /* Connection des fonctions de rappel avec les signaux de l'interface */
  gtk_builder_connect_signals (builder, NULL);

  /* Changement de la fenetre principale a l'etat visible */
  gtk_widget_show (window1);

  /* Lancement de l'execution de la boucle GTK */
  gtk_main ();
  g_object_unref (G_OBJECT (builder));

  /* Fin du programme */
  return 0;
}


callbacks.h:
#ifndef CALLBACKS_H
#define CALLBACKS_H

#include <gtk/gtk.h>

G_MODULE_EXPORT void on_window1_realize (GtkObject *object, gpointer user_data) ;
G_MODULE_EXPORT void on_window1_destroy (GtkObject *object, gpointer user_data) ;
G_MODULE_EXPORT void on_hscale_longueur_value_changed (GtkObject *object, gpointer user_data) ;
G_MODULE_EXPORT void on_spinbutton_longueur_value_changed (GtkObject *object, gpointer user_data) ;

#endif /* CALLBACKS_H */


callbacks.c:
#include <stdio.h>   /* sprintf */
#include <stdlib.h>  /* atoi */
#include <string.h>  /* strlen, strcmp */
#include <ctype.h>   /* isdigit */
#include "callbacks.h"
extern GtkBuilder *builder;

void init_spin_button (GtkSpinButton *spb, double min_val, double max_val, double val, double step, int digits) {
  gtk_spin_button_set_digits (spb, digits) ;
  gtk_spin_button_set_range (spb, min_val, max_val) ;
  gtk_spin_button_set_value (spb, val) ;
  gtk_spin_button_set_increments (spb, step, step) ;
}

void init_hscale (GtkHScale *hsc, double min_val, double max_val, double val, double step, int digits) {
  gtk_scale_set_digits (GTK_SCALE(hsc), digits) ;
  gtk_range_set_range (GTK_RANGE(hsc), min_val, max_val) ;
  gtk_range_set_increments (GTK_RANGE(hsc), step, step) ;
  gtk_range_set_value (GTK_RANGE(hsc), val) ;
}

void on_window1_realize() {
  GtkLabel *label_message = GTK_LABEL (gtk_builder_get_object (builder, "label_message"));
  GtkEntry *entry_nombre1 = GTK_ENTRY (gtk_builder_get_object (builder, "entry_nombre1"));
  GtkEntry *entry_nombre2 = GTK_ENTRY (gtk_builder_get_object (builder, "entry_nombre2"));
	GtkWidget *         gtk_spin_button_new_with_range      (gdouble min, gdouble max, gdouble step);


}

void on_window1_destroy() {


}



si j'ai bien compris, le travail qu'il me reste c'est sur le callbacks.c
d'où mes tatonnements visibles sur celui-ci


et maintenant je sèche je comprends plus trop ce que je fais..
ni ce que je dois faire

si quelqu'un pouvait m'aider

j'ai parcouru quelques forums et les tutos du site du zero
mais ils ne s'y prennent pas de cette façon

merci de votre lecture

1 réponse

i'mlost Messages postés 8 Date d'inscription lundi 17 décembre 2012 Statut Membre Dernière intervention 19 décembre 2012
17 déc. 2012 à 17:42
pour toute aide j'ai ceci: (sujet )

La fonction on_window1_realize() sera appelée lors de la création de la fenêtre. C'est dans cette fonction que nous allons configurer les valeurs initiales du curseur horizontal et du bouton compteur. Les valeurs à donner sont :
Valeur minimum : 0.0
Valeur maximum : 10000.0
Valeur initiale : 100.0
Incrément : 0.1
Décimales : 1

La fonction on_window1_destroy() sera appelée lors de la fermeture de la fenêtre. Cette fonction appellera la fonction d'arrêt gtk_main_quit(); de la boucle GTK
La fonction on_hscale_longueur_value_changed() sera appelée lorsque la valeur du curseur horizontal a été modifiée (par l'utilisateur ou par le programme). Cette fonction va simplement récupérer la valeur du curseur horizontal et l'attribuer au bouton compteur, de sorte que ces deux composants posséderont ainsi la même valeur.
La fonction gtk_range_get_value() permet de récupérer la valeur courante d'un curseur
La fonction gtk_spin_button_set_value() permet de modifier la valeur courante d'un bouton compteur
La fonction on_spinbutton_longueur_value_changed() sera appelée lorsque la valeur du bouton compteur a été modifiée (par l'utilisateur ou par le programme). Cette fonction va simplement récupérer la valeur du bouton compteur et l'attribuer au curseur horizontal, de sorte que ces deux composants posséderont ainsi toujours la même valeur.
La fonction gtk_spin_button_get_value() permet de récupérer la valeur courante d'un bouton compteur
La fonction gtk_range_set_value() permet de modifier la valeur courante d'un curseur


ça peut paraitre logique et clair à un habitué
mais moi ça ne m'aide pas vraiment ^^'
0