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 :

Mise en premier d'un nouvelle fenêtre avec GtkAda


Sujet :

GTK+

  1. #1
    Invité
    Invité(e)
    Par défaut Mise en premier d'un nouvelle fenêtre avec GtkAda
    Bonjour.
    J'ai écris un programme qui fonctionne sur Gnu/Linux, mais pas sur Windows.
    En effet, à la création de la première fenêtre de dialogue, celle ci ce place derrière la fenêtre principale. Sur Gnu/Linux, pas de problème pour passer d'une fenêtre à l'autre et entrer les données... Mais sur Windows, après le focus sur la nouvelle fenêtre, impossible d'entrer les données, la fenêtre est occuper.

    Sauriez vous me dire avec ces information ou est mon erreur ? S'il vous plaît ?
    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Sans code ça va être dur de te répondre...
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour, merci, voici les sources qui ne rentrent pas dans une balise code, alors voici un fichier html : warborg-xborg.adb.html à télécherger sur zippyshare.

    Vous trouverez ligne 1914 l'appel à Get_Wopr_Attributes qui est la fenêtre occupée incriminée.

    Ligne 1442 la procédure initialize de la fenêtre principale.
    Ligne 1712 la procédure Get_Wopr_Attributes.

    Merci pour vos réponses.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Pour poster du code long, utilise un pastebin, du type de pastebin.com.

    Bon, je n'y connais rien en Ada, mais tu as l'air de mal utiliser les types de widgets à ta disposition. Tu connectes le signal "clicked" au bouton "OK" de ta fenêtre en ligne 1751. Mais ce n'est pas comme ça qu'on gère une boite de dialogue. On dérive de GtkDialog, on lance gtk_dialog_run, et on teste la valeur de retour.

    Je ne suis absolument pas sûr que cela vienne de là bien sûr, je connais GTK, mais pas l'Ada, alors j'ai du mal à lire ton programme.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ah oui, et peut-on mettre des spin_button dans un Gtk_Dialog ?

  6. #6
    Invité
    Invité(e)
    Par défaut Pastbin
    Bon, je ne sais pas utiliser le pasttbin, je cause pas trop l'english, Voici le lien de pastbin : http://pastebin.com/TJcRSMXg

  7. #7
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par jovalise Voir le message
    Ah oui, et peut-on mettre des spin_button dans un Gtk_Dialog ?
    Bien sûr, c'est une fenêtre tout ce qu'il y a de plus classique, mais orientée intéraction avec l'utilisation (type bouton ok et annuler). Tu peux rajouter ce que tu veux dedans, comme dans les autres fenêtres GTK.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Entendu, merci, je vais voir si ça change quoi que ce soit.

    Enfin, dans l'état, le programme fonctionne sur Gnu/Linux et pas sur Windows.

  9. #9
    Invité
    Invité(e)
    Par défaut erreur à l'exécution d'un gtk-dialog
    Bonjour, je reviens avec une erreur à l'exécution du run d'un gtk-dialog.

    L'erreur est la suivante :
    ** GLib:ERROR/build/buildd-glib2.0_2.16.6-1+lenny1-i386-HI4TzI/glib2.0-2.16.6/glib/gmain.c:2015):g_main_dispatch: assertion failed: (current->source == &current_source_link)
    Voici mon code de procédure qui est appelé extérieurement à la fenêtre.
    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
    procedure Get_Wopr_Attributes(Main_Window : Main_Window_access) is
          Vbox      : Gtk_Vbox;
          Ok        : Gtk.Widget.Gtk_Widget;
          cancel    : Gtk.Widget.Gtk_Widget;
       begin
          Gtk_New(Main_Window.Wopr_Window.Dialog, "Get Wopr coordonates", Main_Window.Main_window, Gtk.dialog.modal);
          Ok := Gtk.Dialog.Add_Button(Main_Window.Wopr_Window.Dialog, "Ok", Gtk.Dialog.Gtk_Response_Ok);
          Cancel := Gtk.Dialog.Add_Button(Main_Window.Wopr_Window.Dialog, "Cancel", Gtk.Dialog.Gtk_Response_Cancel);
          Vbox := Get_Vbox(Main_Window.Wopr_Window.Dialog);
          Set_Position(Main_Window.Wopr_Window.dialog, Win_Pos_Center);
          Gtk_New(Main_Window.Wopr_Window.Degr_Lat, -90.0, 90.0, 1.0);
          Gtk_New(Main_Window.Wopr_Window.Minu_Lat, 0.0, 60.0, 1.0);
          Gtk_New(Main_Window.Wopr_Window.Seco_Lat, 0.0, 60.0, 1.0);
          Gtk_New(Main_Window.Wopr_Window.Degr_Lon, -180.0, 180.0, 1.0);
          Gtk_New(Main_Window.Wopr_Window.Minu_Lon, 0.0, 60.0, 1.0);
          Gtk_New(Main_Window.Wopr_Window.Seco_Lon, 0.0, 60.0, 1.0);
          Gtk_New_Hbox(Main_Window.Wopr_Window.Lat_Hbox);
          Gtk_New_Hbox(Main_Window.Wopr_Window.Lon_Hbox);
          Gtk_New(Main_Window.Wopr_Window.Lat_Label, "Latitude  :");
          Gtk_New(Main_Window.Wopr_Window.Lon_Label, "Longitude :");
          Gtk_New_Hbox(Main_Window.Wopr_Window.Lat_Hbox);
          Gtk_New_Hbox(Main_Window.Wopr_Window.Lon_Hbox);
          Pack_Start(Main_Window.Wopr_Window.Lat_Hbox, Main_Window.Wopr_Window.Lat_Label);
          Pack_Start(Main_Window.Wopr_Window.Lat_Hbox, Main_Window.Wopr_Window.Degr_lat);
          Pack_Start(Main_Window.Wopr_Window.Lat_Hbox, Main_Window.Wopr_Window.Minu_lat);
          Pack_Start(Main_Window.Wopr_Window.Lat_Hbox, Main_Window.Wopr_Window.Seco_lat);
          Pack_Start(Main_Window.Wopr_Window.Lon_Hbox, Main_Window.Wopr_Window.Lon_Label);
          Pack_Start(Main_Window.Wopr_Window.Lon_Hbox, Main_Window.Wopr_Window.Degr_Lon);
          Pack_Start(Main_Window.Wopr_Window.Lon_Hbox, Main_Window.Wopr_Window.Minu_Lon);
          Pack_Start(Main_Window.Wopr_Window.Lon_Hbox, Main_Window.Wopr_Window.Seco_Lon);
     
          Pack_Start(Vbox, Main_Window.Wopr_Window.Lat_Hbox);
          Pack_Start(Vbox, Main_Window.Wopr_Window.Lon_Hbox);
          Text_Io.Put_Line("Packstart Ok ! ");
          Show_All(Main_Window.Wopr_Window.Dialog);
          Text_Io.Put_Line("Show_all Ok ! ");
          case Gtk.Dialog.Run(Main_Window.Wopr_Window.Dialog) is
             when Gtk.Dialog.Gtk_Response_Ok    =>
                Create_Wopr(null, Main_Window);
                Gtk.Dialog.Destroy(Main_Window.Wopr_Window.Dialog);
             when Gtk.Dialog.Gtk_Response_Cancel =>
                Gtk.Dialog.Destroy(Main_Window.Wopr_Window.Dialog);
             when others =>
                Gtk.Dialog.Destroy(Main_Window.Wopr_Window.Dialog);
          end case;
       end Get_Wopr_Attributes;
    Merci pour vos lumières.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Merci bien pour la méthode liberforce, le programme fonctionne sur Windows à présent, et fonctionne même mieux sur Gnu/Linux.

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

Discussions similaires

  1. [XL-2007] Nouvelle mise en forme sur nouvel onglet avec code VBA
    Par Pygouv dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/04/2013, 10h11
  2. Réponses: 2
    Dernier message: 03/05/2012, 14h08
  3. [Débutant] Ouvrir nouvelle fenêtre avec un push button
    Par roudoudounette dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/12/2009, 12h47
  4. Réponses: 0
    Dernier message: 24/03/2009, 18h27
  5. cherche java pour ouvrir nouvelle fenêtre avec dimension
    Par audax dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/01/2008, 16h36

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