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 :

Quel widgets choisir.


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut Quel widgets choisir.
    Bonjour à toutes et à tous,

    Voilà, dans l application que je souhaite créer j ai besoin d un widget qui permet à l utilisateur de rentrer un nombre. J ai utilisé ce widget:

    gtk_entry_new_with_max_length(max).

    Le seul souci c est que l utilisateur peux aussi rentrer des lettres. Peux t on mettre une option pour que cela ne soit pas possible, ou bien dois-je changer de widget ?

    Une fois le nombre rentré il faudrat que l utilisateur appuis sur un bouton et à partir du chiffre rentré je souhaites afficher plusieurs résultats. C est à dire que le programme ce charge de faire des calculs et affiche donc plusieurs résultats.
    Pour l affichage des résultats je n ai aucune idée de quel widget je peux me servir. J ai beau regarder dans la documentation officielle, mais je n arrive pas à trouver. Auriez vous une petite idée s il vous plaît?

    Merci par avance pour vos réponses.

    Shazad

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par shazad Voir le message
    Voilà, dans l application que je souhaite créer j ai besoin d un widget qui permet à l utilisateur de rentrer un nombre. J ai utilisé ce widget:

    gtk_entry_new_with_max_length(max).

    Le seul souci c est que l utilisateur peux aussi rentrer des lettres. Peux t on mettre une option pour que cela ne soit pas possible, ou bien dois-je changer de widget ?
    [GTK+] Filtre sur Entry

    Citation Envoyé par shazad Voir le message
    Une fois le nombre rentré il faudrat que l utilisateur appuis sur un bouton et à partir du chiffre rentré je souhaites afficher plusieurs résultats. C est à dire que le programme ce charge de faire des calculs et affiche donc plusieurs résultats.
    Pour l affichage des résultats je n ai aucune idée de quel widget je peux me servir. J ai beau regarder dans la documentation officielle, mais je n arrive pas à trouver. Auriez vous une petite idée s il vous plaît?
    GtkLabel, GtkEntry (en lecture seule), GtkTreeView, GtkTextView, ... Tout dépend de la manière dont tu souhaite présenter les résultats. Un GtkLabel est surement le plus simple

  3. #3
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Non. Il n'existe pas de widget spécialisé pour la saisie que de nombre. Il faut que tu interceptes la frappe du GtkEntry Pour trier ce qui est entré. Tu trouveras de vieux posts sur ce forum qui traitent de ce sujet.

    Pour l'affichage les GtkLabel font l'affaire.

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Non. Il n'existe pas de widget spécialisé pour la saisie que de nombre. Il faut que tu interceptes la frappe du GtkEntry Pour trier ce qui est entré. Tu trouveras de vieux posts sur ce forum qui traitent de ce sujet.
    Et GtkSpinButton ?

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    oui c'est vrai. Je n'y pense jamais.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    Bonjour à tous,

    Et un grand merci .Je vais éplucher tout ça de suite. Désolé de ne pas avoir trouvé par moi même l ancien post.

    La manière dont je souhaite afficher les résultats:
    Donc vous aurez compris que ce sont exclusivement des chiffres qui seront affiché. J aimerais bien qu'ils ressemblent à des rectangles blancs. Je vais devoir disposer les widget en colonne. Trois colonnes séparées.
    Chacune de ces colonnes comporteras 24 widget d affichage empilés les uns sur les autres.
    En tous cela fait 72 résultats. Je voudrais arriver à les remplir à l aide d un while. Ce que je veux dire c est que 3 calculs se font dans le while et cela remplis les premiers widget d affichage de chaque colonnes, un second calcul se fait et ce sont les second widget de chaque colonnes qui sont remplis.......

    Voilà, j espère que je n ai pas étais trop obscure dans mes explications.

    Shaz

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    J ai bien regardé les GtkLabel, et vous avez raison, cela à l air d être le mieux.
    Il faut juste que j ai la possibilité de récupérer les informations de ma boucle while et de les assigner à chacun des GtkLabel .

    Shazad

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    J ai trouvé ce code dans la documentation GTK:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <ctype.h>
    #include <gtk/gtk.h>
     
    void insert_text_handler (GtkEntry *entry,const gchar *text,gint length,gint *position,gpointer data)
    {
      GtkEditable *editable = GTK_EDITABLE(entry);
      int i, count=0;
      gchar *result = g_new (gchar, length);
     
      for (i=0; i < length; i++)
      {
        if (!isalpha(text[i]))
          continue;
        result[count++] = islower(text[i]) ? toupper(text[i]) : text[i];
      }
     
      if (count > 0)
      {
        g_signal_handlers_block_by_func (G_OBJECT (editable),G_CALLBACK (insert_text_handler),data);
        gtk_editable_insert_text (editable, result, count, position);
        g_signal_handlers_unblock_by_func (G_OBJECT (editable),G_CALLBACK (insert_text_handler),data);
      }
      g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text");
     
      g_free (result);
    }
     
    int main (int   argc,char *argv[])
    {
      GtkWidget *window;
      GtkWidget *entry;
     
      gtk_init (&argc, &argv);
     
      /* create a new window */
      window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      gtk_window_set_title(GTK_WINDOW (window), "GTK Entry");
      g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (gtk_main_quit),NULL);
     
      entry = gtk_entry_new_with_max_length(3);
      g_signal_connect(G_OBJECT(entry), "insert_text",G_CALLBACK(insert_text_handler),NULL);
      gtk_container_add(GTK_CONTAINER (window), entry);
     
      gtk_widget_show_all(window);
     
      gtk_main();
      return(0);
    }
    Je ne comprends pas grand chose honnêtement. La seul chose que j ai réussi à faire c est de remplacer isalpha par isdigit afin que cela conviens à l application que je veux faire.
    Si cela ne vous embête pas, pourriez vous m expliqué un peu la fonction insert_text_handler.

    Merci par avance.

    Shazad

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    mm

Discussions similaires

  1. Quel compilateur choisir pour l'assembleur ?
    Par forthx dans le forum Assembleur
    Réponses: 97
    Dernier message: 09/10/2018, 14h55
  2. Quel widgets choisir?
    Par Rniamo dans le forum Débuter
    Réponses: 8
    Dernier message: 15/06/2009, 20h46
  3. Quel outil choisir pour un développement SQL-Server ?
    Par Mouse dans le forum Débats sur le développement - Le Best Of
    Réponses: 23
    Dernier message: 12/08/2003, 06h23
  4. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42
  5. je veux apprendre la programmation quel language choisir??
    Par existance dans le forum Débuter
    Réponses: 26
    Dernier message: 06/08/2002, 05h32

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