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 :

Ouvrir un champ de texte dans une gtkvbox


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Ouvrir un champ de texte dans une gtkvbox
    Bonjour, je suis étudiant en première année de dut et je voudrais après appui sur "Symétrique" puis "Nouveau", ouvrir un "champ de texte" (je suis pas sur de l'appellation) dans cette même fenêtre où l'utilisateur pourrait taper un texte.


    Ou alors s'il y aurait une solution plus simple comme ouvrir le champ dans une autre petite fenêtre ? Apparemment ce n'est pas possible d'après mon prof.

    J'ai essayé très vite fait Glade, il faudrait peut être que j'y passe plus de temps.
    Mais est-ce vrai que glade convertit le fichier .xml en python ?

  2. #2
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Salut, et bienvenue !

    Pour ajouter un widget de texte à une GtkVBox, tu peux utiliser simplement la fonction pack_start(). Après, ça dépend de comment tu as codé le début de ton programme, il peut y avoir des petites nuances. Montre-nous un bout de code si tu as des difficultés.

    Tu peux parfaitement ouvrir la zone de texte dans une nouvelle fenêtre, avec une GtkDialog par exemple.

    Sache aussi que tu as le choix entre plusieurs widgets de texte : GtkEntry pour du simple ligne, GtkTextView pour du multilignes.

    Glade, c'est bien mais ça sert surtout pour des projets complexes avec plein de widgets. Il n'est pas possible de générer du code python depuis le fichier xml ; c'était possible de générer du C a une époque, mais c'est ultra-déconseillé (voir ce sujet pour les détails de pourquoi la génération automatique de code est le mal absolu).

    -

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Salut, merci de ta reponse.
    voila mon code :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    #include <stdlib.h>
    #include <gtk/gtk.h>
    void OnQuitter(GtkWidget* widget, gpointer data);
    void OnUpdate(GtkWidget *pEntry, gpointer data);
    void OnAbout(GtkWidget* widget, gpointer data);
    int main(int argc, char **argv)
    {
    GtkWidget *pWindow;
    GtkWidget *pVBox;
    GtkWidget *pMenuBar;
    GtkWidget *pMenu;
    GtkWidget *pMenuItem;
    gtk_init(&argc, &argv);
    /* Creation de la fenetre */
    pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(pWindow), "Menu Cryptographie");
    gtk_window_set_default_size(GTK_WINDOW(pWindow), 220, 150);
    g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit),
    NULL);
    /* Creation de la GtkVBox */
    pVBox = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
    /**** Creation du menu ****/
    /* ETAPE 1 */
    pMenuBar = gtk_menu_bar_new();
    /** Premier sousmenu
    **/
    /* ETAPE 2 */
    pMenu = gtk_menu_new();
    /* ETAPE 3 */
    pMenuItem = gtk_menu_item_new_with_label("Nouveau");
    /*g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(OnFenetre),        //FAUX//
    (GtkWidget*) pWindow);*/
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
    pMenuItem = gtk_menu_item_new_with_label("Ouvrir");
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
    pMenuItem = gtk_menu_item_new_with_label("Enregistrer");
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
    pMenuItem = gtk_menu_item_new_with_label("Fermer");
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
    pMenuItem = gtk_menu_item_new_with_label("Quitter");
    g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(OnQuitter),
    (GtkWidget*) pWindow);
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
    /* ETAPE 4 */
    pMenuItem = gtk_menu_item_new_with_label("Symetrique");
    /* ETAPE 5 */
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pMenu);
    /* ETAPE 6 */
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem);
    /** Second sousmenu
    **/
    /* ETAPE 2 */
    pMenu = gtk_menu_new();
    /* ETAPE 3 */
    pMenuItem = gtk_menu_item_new_with_label("A propos de...");
    g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(OnAbout),
    (GtkWidget*) pWindow);
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
    /* ETAPE 4 */
    pMenuItem = gtk_menu_item_new_with_label("?");
    /* ETAPE 5 */
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pMenu);
    /* ETAPE 6 */
    gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem);
    /* Ajout du menu a la fenetre */
    gtk_box_pack_start(GTK_BOX(pVBox), pMenuBar, FALSE, FALSE, 0);
    gtk_widget_show_all(pWindow);
    gtk_main();
    return EXIT_SUCCESS;
    }
    void OnQuitter(GtkWidget* widget, gpointer data)
    {
    GtkWidget *pQuestion;
    pQuestion = gtk_message_dialog_new(GTK_WINDOW(data),
    GTK_DIALOG_MODAL,
    GTK_MESSAGE_QUESTION,
    GTK_BUTTONS_YES_NO,
    "Voulez vous vraiment\n"
    "quitter le programme?");
    switch(gtk_dialog_run(GTK_DIALOG(pQuestion)))
    {
    case GTK_RESPONSE_YES:
    gtk_main_quit();
    break;
    case GTK_RESPONSE_NONE:
    case GTK_RESPONSE_NO:
    gtk_widget_destroy(pQuestion);
    break;
    }
    }
    void OnAbout(GtkWidget* widget, gpointer data)
    {
    GtkWidget *pAbout;
    pAbout = gtk_message_dialog_new (GTK_WINDOW(data),
    GTK_DIALOG_MODAL,
    GTK_MESSAGE_INFO,
    GTK_BUTTONS_OK,
    "Projet Informatique\n"
    "Cazorla - Brejeon");
    gtk_dialog_run(GTK_DIALOG(pAbout));
    }
    Pour mon cas je vais prendre du gtktextview.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Salut,

    Désolé de répondre si tard, je suis en déplacement et je n'ai aucun moyen de tester du code GTK en ce moment.

    Connecte déjà un callback au signal "activate" du bouton "Nouveau" avec par exemple un pointeur sur pVBox en argument supplémentaire, puis utilise gtk_box_pack_start pour ajouter le GtkTextView à pVBox.

    -

Discussions similaires

  1. inserer un champ de text dans une select box
    Par ilyes_dev dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/11/2009, 10h39
  2. formulaire avec champs de texte dans une boucle
    Par sssmix dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/04/2008, 16h03
  3. Importer un fichier texte dans une table avec champ Memo
    Par Steph4fun dans le forum Paradox
    Réponses: 12
    Dernier message: 25/11/2007, 23h10
  4. Problème de zone de texte dans une GtkVBox
    Par Shugo78 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 18/09/2007, 17h21
  5. [FB 1.5] ouvrir fichier texte dans une ps
    Par jlf dans le forum Débuter
    Réponses: 4
    Dernier message: 16/02/2005, 20h29

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