2010-01-01 26 views
3

通常情况下,对于标签,你可以做这样的事情:如何使Gtk.Frame的标签变为粗体?

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

然而,Gtk.Frame的标签只是一个字符串,而不是一个完整的标签。我找不到使用标记的选项。如何启用标记,或以其他方式将标签设置为粗体?

回答

0

不知道它会怎样看在C#中,但纯C,你可以这样做:

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有任何设置widget作为 “标签” 的可能性。您可以通过访问LabelWidget来访问此小组件。使用这种可能性,您可以使用您需要的任何属性设置新的Gtk.Label

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

该解决方案实际上更简单的标签具有标记的具体情况。我发现,在Gtk.Frame已经有一个Gtk.Label连接,并且,如你所说,你可以在标记属性设置为

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

希望这有助于。

+1

以下你的友好风格:假。这些代码因为我已经使用过很多次了。显然你不知道Gtk#,因为你指的是底层(核心)Gtk +库。考虑到Gtk#可能会添加行为或说明您不知道:谨慎的一个很好的理由。特别是在这样一个可疑的短语中:“如果你测试过这个代码,你就会知道它不起作用。” – Baltasarq 2016-02-23 21:45:16

+1

+1;我从这些知识中学到了一些新东西:-)我需要检查'gtkmm'是否也有一个默认的'Label'小部件,这可能非常有用!我认为它只是一个字符串,但正如你所说的,可能是从GTK +错误地推断,或者我甚至没有读过_that_正确;-) – 2016-02-24 10:29:55

相关问题