2017-01-24 3 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) 

я использовал «принадлежащий», чтобы работать должным образом, но я не нашел другой путь.

спасибо.