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

 .NET Discussion :

GTK, Glade et C# [C#]


Sujet :

.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut GTK, Glade et C#
    Bonjour,

    A l'aide de Glade 3.6.6 sous WIndows, j'ai crée le xml suivant (au format "LibGlade", pas "GtkBuilder" ):

    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
    <?xml version="1.0"?>
    <glade-interface>
      <!-- interface-requires gtk+ 2.16 -->
      <!-- interface-naming-policy project-wide -->
      <widget class="GtkWindow" id="fenetre">
        <signal name="delete_event" handler="OnWindowDeleteEvent"/>
        <child>
          <widget class="GtkFixed" id="cadre">
            <property name="visible">True</property>
            <child>
              <widget class="GtkButton" id="bouton">
                <property name="label" translatable="yes">Test</property>
                <property name="width_request">100</property>
                <property name="height_request">80</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <signal name="clicked" handler="OnButtonClicked"/>
              </widget>
              <packing>
                <property name="x">5</property>
                <property name="y">5</property>
              </packing>
            </child>
          </widget>
        </child>
      </widget>
    </glade-interface>
    Ensuite je crée le code pour prendre ce fichier et afficher l'interface:

    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
    using System;
    using Gtk;
     
    namespace Gtk_Sharp
    {
    	public class MainForm
    	{
    		public MainForm( string[] args )
    		{
    			Application.Init();
    			Glade.XML gxml = new Glade.XML( null, "interface.glade", "fenetre", null );
    			gxml.Autoconnect( this );
    			Application.Run();
    		}
     
    // Gestion des evenements ______________________________________________________		
     
    		public void OnWindowDeleteEvent (object o, DeleteEventArgs args)
    		{
    			Application.Quit();
    			args.RetVal = true;
    		}
     
    		public void OnButtonClicked (System.Object obj, EventArgs e)
    		{
    			Console.WriteLine ("Button 1 clicked");
    		}
     
    // Point d'entree du programme _________________________________________________
     
    		public static void Main (string[] args)
    		{
    			new MainForm( args );
    		}
    	}
    }
    Et je compile avec une tache Ant sous Eclipse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <target name="compiler">
    	<exec executable="${compilateur}" dir="${repertoireCompilateur}" failonerror="true">
    		<arg value="${repertoireCompilateur}/../lib/mono/2.0/mcs.exe" />
    		<arg value="-target:winexe" />
    		<arg value="-pkg:gtk-sharp-2.0" />
    		<arg value="-pkg:glade-sharp-2.0" />
    		<arg value="${basedir}/src/*.cs" />
    		<arg value="-resource:${basedir}/gui/interface.glade" />
    		<arg value="-out:${basedir}/bin/MainForm.exe" />		
    	</exec>
    </target>
    Je n'ai pas d'erreur de compilation, pas d'erreur à l'execution, mais rien ne s'affiche. Je doit tuer le processus à l'aide du gestionnaire de tâche.

    Je me suis inspiré de http://pubcrawler.org/2002/12/12/my-...e-application/ pour ma première expérience GTK + C#.

    A noter que l'exemple de http://vincentlaine.developpez.com/t...tnet/gtksharp/ (sans utiliser Glade) fonctionne parfaitement.

    D'ou vient mon erreur ?

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut Ajout de 2 lignes...
    Re,

    Bon bin j'ai trouvé, en ajoutant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Gtk.Window fenetre = (Gtk.Window)gxml.GetWidget("fenetre");
    fenetre.ShowAll();
    Dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public MainForm( string[] args )
    {
    	Application.Init();
    	Glade.XML gxml = new Glade.XML( null, "interface.glade", "fenetre", null );
    	gxml.Autoconnect( this );
    	Gtk.Window fenetre = (Gtk.Window)gxml.GetWidget("fenetre");
    	fenetre.ShowAll();
    	Application.Run();
    }
    Ca marche, il faut quand même, même si dans Glade on dit que la fenêtre est visible, le préciser dans le code...

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

Discussions similaires

  1. Urgent probléme entry GTK glade
    Par aymoun11 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 14/01/2009, 10h47
  2. Intégration de gtk / glade / giw
    Par KiKiTiTi dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 11/12/2008, 23h00
  3. Deployer une app #develop / GTK / Glade
    Par Kerhim dans le forum Sharpdevelop
    Réponses: 1
    Dernier message: 21/12/2007, 23h05
  4. Utilisation de Fonctions sous Gtk/Glade
    Par cupidette92 dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 09/04/2007, 16h41
  5. GTK+ / GLADE Win32 <== pkconfig?
    Par Jean_Benoit dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 07/11/2006, 20h02

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