2010-01-01 5 views
3

Habituellement, pour les étiquettes que vous pouvez faire quelque chose comme ceci:Comment faire en sorte que l'étiquette d'un Gtk.Frame soit en gras?

Label label = new Label ("<b>Some Text</b>") { 
    UseMarkup = true 
}; 

Cependant, l'étiquette de Gtk.Frame est juste une chaîne, pas une étiquette à part entière. Je ne peux pas trouver une option pour utiliser le balisage. Comment activer le balisage, ou sinon mettre l'étiquette en gras?

Répondre

3

L'étiquette d'un GtkFrame can be any widget et vous pouvez utiliser votre propre GtkLabel si vous le souhaitez.

0

Je ne sais pas à quoi il ressemblerait en C# mais en C ordinaire, vous pouvez le faire:

frame = GTK_WIDGET (g_object_new (GTK_TYPE_FRAME, "label", "", NULL)); 
 
    label = gtk_label_new(_("<b>Scope</b>")); 
 
    gtk_label_set_use_markup(GTK_LABEL(label), TRUE); 
 
    gtk_frame_set_label_widget (GTK_FRAME(frame), label);

1

Gtk.Frame a la possibilité de tout widget comme "label" . Vous pouvez accéder à ce widget en accédant à la propriété LabelWidget. En utilisant cette possibilité, vous pouvez définir un nouveau Gtk.Label avec toutes les propriétés dont vous avez besoin.

var frmExample = new Gtk.Frame(); 
frmExample.LabelWidget = new Gtk.Label() { Markup = "<b>Example</b>" }; 
this.Add(frmExample); 
this.showAll(); 

La solution est en fait plus simple pour le cas spécifique d'une étiquette avec balisage. Je l'ai constaté que le Gtk.Frame a déjà une Gtk.Label attaché, et, comme vous l'avez dit, vous pouvez définir le balisage propriété -vrai.

var frmExample = new Gtk.Frame("<b>Example</b>"); 
((Gtk.Label) this.frmExample.LabelWidget).UseMarkup = true; 
this.Add(frmExample); 
this.showAll(); 

Espérons que cela aide.

+1

En suivant votre style amical: Faux. Le code fonctionne depuis que je l'ai utilisé des tonnes de fois. Évidemment, vous ne connaissez pas Gtk # puisque vous faites référence à la bibliothèque Gtk + (core) sous-jacente. Prenez en compte que Gtk # pourrait ajouter un comportement ou un état que vous ne connaissez pas: une bonne raison de prudence. Surtout dans une phrase aussi douteuse comme: "Si vous aviez testé ce code, vous sauriez que ça ne marchera pas." – Baltasarq

+1

+1; J'ai appris quelque chose de nouveau de tout cela :-) Je vais devoir vérifier si 'gtkmm' a aussi un widget' Label' par défaut, ce qui pourrait être très utile! Je pensais que c'était juste une chaîne, mais, comme vous l'avez noté, peut-être extrapolée à tort à partir de GTK +, ou peut-être que je n'ai même pas lu _that_ right ;-) –

Questions connexes