‘;gtk#u widget_override#u font’;不赞成

‘;gtk#u widget_override#u font’;不赞成,gtk,pango,genie,Gtk,Pango,Genie,我开始在Pango+Gtk中使用精灵 我想用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

我开始在Pango+Gtk中使用精灵

我想用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,您使用并使用了而不是字体描述符。您可以将现有字体描述符转换为属性列表,也可以将单个字体描述符与现有字体描述符一起使用


至于其他小部件,一些小部件允许您直接指定Pango属性列表或字体描述符;检查他们的文件。对于所有其他人,请使用CSS。

好吧,根据您的回答,我得到了以下代码:

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)
我使用“拥有”来正常工作,但我没有找到其他方法


谢谢。

您可以使用标记。我认为这更正确。