2017-01-24 192 views
0

我開始使用Genie和Pango + Gtk。'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) 

謝謝

+0

您可以使用標記。我認爲更正確。 – txasatonga

回答

2

對於GtkLabel的,你用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) 

我用「資」能正常工作,但我還沒有找到另一種方式。

謝謝。