2017-01-24 13 views
0

私はPango + GtkでGenieを使い始めています。'gtk_widget_override_font'は非推奨です

Pangoでラベルのテキストスタイルを変更したいのですが、modify_fontとoverride_fontの両方が推奨されていません。

Pangoを使用してこのコードの代替手段を教えてください。

uses Gtk 
uses Pango 

init 
    Gtk.init (ref args) 
    var TestGtk = new Ventana() 
    TestGtk.show_all() 
    Gtk.main() 

class Ventana : Window  
    init   
     title = "Test Genie + Pango" 
     default_width = 500  
     default_height = 200   
     window_position = WindowPosition.CENTER 
     destroy.connect(Gtk.main_quit) 

     var etiqueta = new Label("Hola Genie + Pango")  

     var fontdesc = new Pango.FontDescription() 
     fontdesc.set_family("Purisa") 
     fontdesc.set_size((int)(24 * Pango.SCALE)) 

     //etiqueta.modify_font(fontdesc) // funciona pero OBSOLETO desde v 3.0 
     etiqueta.override_font(fontdesc) // funciona pero OBSOLETO desde v 3.16  

     add (etiqueta) 

はGtkLabelのためにあなたに

+0

マークアップを使用できます。もっと正しいと思います。 – txasatonga

答えて

2

をありがとう、あなたはgtk_label_set_attributes()を使用し、代わりにフォント記述子のattribute listを使用します。既存のフォント記述子を属性リストに変更するか、既存のフォント記述子を使用してfont descriptor attributeを単独で使用することができます。

他のウィジェットでは、Pango属性リストやフォント記述子を直接指定できるウィジェットがあります。ドキュメントを確認してください。それ以外の場合は、CSSを使用してください。

0

まあ、あなたの答え、次の私はこのコードを持って:

uses Gtk 
uses Pango 

init 
    Gtk.init (ref args) 
    var TestGtk = new Ventana() 
    TestGtk.show_all() 
    Gtk.main() 

class Ventana : Window  
    init   
     title = "Test Genie + Pango" 
     default_width = 500  
     default_height = 200   
     window_position = WindowPosition.CENTER 
     destroy.connect(Gtk.main_quit) 

     var etiqueta = new Label("Hola Genie + Pango")  

     var fontdesc = new Pango.FontDescription() 
     fontdesc.set_family("Purisa") 
     fontdesc.set_size((int)(24 * Pango.SCALE)) 

     //etiqueta.modify_font(fontdesc) // funciona pero OBSOLETO desde v 3.0 
     //etiqueta.override_font(fontdesc) // funciona pero OBSOLETO desde v 3.16 

     var attr_list = new Pango.AttrList() 
     fuente:Pango.Attribute = new Pango.AttrFontDesc (fontdesc)   
     attr_list.insert ((owned)fuente)   
     etiqueta.set_attributes(attr_list)  

     add (etiqueta) 

私が正しく動作するために「所有」使用されますが、私は別の方法を発見していません。

ありがとうございます。