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 :

[Gtk#] Changer le Font d'un Label


Sujet :

GTK+

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 57
    Points
    57
    Par défaut [Gtk#] Changer le Font d'un Label
    Re Bonjour à tous!
    Désolé de polluer le forum avec mes problèmes de Gtk# (2 messages en une aprème!) mais je deviens fou!
    Alors j'essaye de faire simplement un label dans une fenêtre mais je voudrais changer la taille et le style de la police de ce label!
    J'essaye donc de trouver l'équivalent de ToolStripLabel (Windows.Forms en .NET) sous Mono. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ToolStripLabel.AutoSize = false;
    ToolStripLabel.Font = new Font("Tahoma", 8.25F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)));
    ToolStripLabel.Size = new Size(180,20);
    ToolStripLabel.TextAlign = ContentAlignment.MiddleCenter;
    En regardant la doc Gtk# j'ai vu qu'on ne pouvait pas faire cela sur directement sur les Labels.
    Donc ma question est simple : est-ce qu'il y a un moyen de faire ca simplement avec Gtk#?

    J'ai essayé de faire ca avec la classe textView en mettant la propriété Editable a false pour que l'utilisateur ne puisse pas la modifier.
    Cependant je lutte depuis un bon moment pour comprendre la doc et utiliser les exemples de code que j'ai à disposition :
    1) Je ne comprend pas pourquoi il faut utiliser la classe TextBuffer avec TextView.
    2)J'essaye d'appliquer un TextTag sur mon TextBuffer mais j'ai une erreur :
    `Gtk.TextBuffer' does not contain a definition for `InsertWithTagsByName'
    Voici mon code (directement repris du tuto de dev01):
    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
     
    //textView
    			this.textView = new Gtk.TextView();
    				//TextBuffer
    				this.textBuffer = this.textView.Buffer;
    				//tag
    				this.tag = new Gtk.TextTag("gras");
    				this.tag.Weight = Pango.Weight.Bold;
    				//textIter
    				insertIter = textBuffer.GetIterAtOffset(0);
     
    			//Ajout des tag dans la liste des tag connu du buffer
    			this.textBuffer.TagTable.Add (tag);		
     
    			//On insert le texte avec le style que l'on a défini.
    			this.textBuffer.InsertWithTagsByName(ref insertIter, "Bienvenue dans LogView\n", "gras");
    L'erreur est à la dernière ligne!!

    De plus si quelqu'un a un bon ouvrage sur Gtk# et mono (même en anglais) je veux bien les références svp!

    Merci d'avance!

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par goddet
    En regardant la doc Gtk# j'ai vu qu'on ne pouvait pas faire cela sur directement sur les Labels.
    Donc ma question est simple : est-ce qu'il y a un moyen de faire ca simplement avec Gtk#?
    Je l'ai pas testé mais il me semble qu'il faut utiliser les méthodes Modify* : http://www.go-mono.com/docs/monodoc....3%23Widget%2f*

    Citation Envoyé par goddet
    1) Je ne comprend pas pourquoi il faut utiliser la classe TextBuffer avec
    TextView.
    Parce que en GTK le contenant (Le textview) et le contenu (TextBuffer) sont deux choses différentes. En gros le TextView ne fait qu'afficher le contenu du TextBuffer qui lui contient ton texte et permet de faire toute les opérations dessus

    Citation Envoyé par goddet
    De plus si quelqu'un a un bon ouvrage sur Gtk# et mono (même en anglais) je veux bien les références svp!
    Euh ... Je crois pas qu'il y ai un seul bouquin sur GTK#
    Pour Mono : http://www.amazon.fr/Mono-Developers...4755331&sr=1-1
    C'est pas le seul mais c'est le seul que j'ai retrouvé
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Merci à toi dev01 tu m'as encore bien tuyauté!!!!!
    Donc voila un bout de code tiré de la doc qui modifie le font d'un label!
    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
     
    using System;
    using Gtk;
    using Pango;
     
    public class FontButtonExample
    {
         static Label label;
         static Gtk.FontButton button;
     
         public static void Main ()
         {
              Application.Init ();
     
              Window myWindow = new Window ("FontButton Example");
              myWindow.DeleteEvent += OnDelete;
     
              button = new FontButton ();
              button.FontSet += OnFontSet;
     
              label = new Label ("Sample text");
     
              VBox box = new VBox ();
              box.Add (button);
              box.Add (label);
     
              myWindow.Add (box);
              myWindow.ShowAll ();
              Application.Run ();
         }
     
         static void OnFontSet (object o, EventArgs e)
         {
              label.ModifyFont (FontDescription.FromString (button.FontName));
         }
     
         static void OnDelete (object o, DeleteEventArgs e)
         {
              Application.Quit ();
         }
    }
    Il y a donc bien une fonction ModifyFont pour les labels. Fallait juste que je remonte jusqu'à la classe Widget (comme label hérite de celle-ci il me semble).

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

Discussions similaires

  1. Changer couleur font label lors du passage du curseur
    Par User Name dans le forum Débuter
    Réponses: 13
    Dernier message: 23/12/2007, 00h20
  2. [MFC]Impossible de changer le texte d'un LABEL
    Par jlassira dans le forum MFC
    Réponses: 7
    Dernier message: 01/03/2006, 16h39
  3. changer le style d'un label
    Par chourmo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/12/2005, 15h42
  4. [MFC] Changer la couleur d'un label
    Par Gulix dans le forum MFC
    Réponses: 4
    Dernier message: 11/10/2005, 13h54
  5. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46

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