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+ Discussion :

Faire disparaître une fenêtre


Sujet :

GTK+

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de slack457
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut Faire disparaître une fenêtre
    Bonjour,

    je dois utiliser le langage C, et GTK pour un projet étudiant (je n'ai pas le droit d'utiliser autre chose).

    Pour mon programme j'ai un système de connexion/créer un compte.
    A l'ouverture du programme, j'aimerai avoir une fenetre, avec 2 boutons ("connexion" et "créer un compte"),
    quand je me connecte, j'aimerai que sur ma fenêtre les 2 boutons disparaissent, et je rentre dans le programme (connecté avec mon login).

    Je ne sais pas trop trop comment m'y prendre. J'ai pensé à détruire ma fenêtre (celle où il y a les boutons connexion), puis créer une nouvelle fenêtre avec des nouveaux boutons (et je serai connecté avec mon login).

    J'en suis arrivé à ce code, mais au lieu de faire disparaître la fenêtre entière, c'est seulement mon bouton "connexion" qui disparait

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
     
    void hide_me(gpointer pWindow)
    {
       gtk_widget_hide(pWindow);
    }
     
     
    int main(int argc, char **argv)
    {
       GtkWidget *pWindow;
       GtkWidget *pTable;
       GtkWidget *pConnect[2];
     
       gtk_init(&argc, &argv);
     
       pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
       gtk_window_set_default_size(GTK_WINDOW(pWindow), 640, 480);
       g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
       pTable = gtk_table_new(9, 7, TRUE);
       gtk_container_add(GTK_CONTAINER(pWindow), GTK_WIDGET(pTable));
     
       pConnect[0]= gtk_button_new_with_mnemonic("_Connection");
       pConnect[1]= gtk_button_new_with_mnemonic("Create an _account");
     
       gtk_table_attach_defaults(GTK_TABLE(pTable), pConnect[0],
                                 4, 6, 3, 4);
       gtk_table_attach_defaults(GTK_TABLE(pTable), pConnect[1],
                                 4, 6, 5, 6);
     
       g_signal_connect(G_OBJECT(pConnect[0]), "clicked", G_CALLBACK(hide_me), pWindow);
     
       gtk_widget_show_all(pWindow);
     
       gtk_main();
     
       return EXIT_SUCCESS;
    }
    Si vous arrivez à m'aider c'est super sympa. ^^

  2. #2
    Membre confirmé Avatar de slack457
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    ah d'accord, le problème se trouve sur la ligne 34, à cause de g_signal_connect, ou de G_CALLBACK.

    Comme la fonction hide_me sera appelée en cliquant sur le bouton pConnect[0], il faut que la fonction hide_me ai en paramètre ce bouton, en l'ajoutant ça fonctionne bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void hide_me(GtkWidget *pButton, gpointer pWindow)
    {
         gtk_widget_hide(pWindow);
    }
    Ici, pButton reçoit le pointeur de pConnect[0]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/07/2006, 10h41
  2. Réponses: 8
    Dernier message: 07/02/2006, 18h31
  3. [Stratégie] Erreurs: faire apparaître une fenêtre
    Par seb.ch dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/08/2005, 15h08
  4. Réponses: 2
    Dernier message: 13/12/2004, 15h16
  5. [Plugin / Graphique] Faire apparaitre une fenêtre?
    Par relivio dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 31/03/2004, 19h10

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