我开始使用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
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 :(得分:2)
对于GtkLabel,您使用gtk_label_set_attributes()
并使用attribute list而不是字体描述符。您可以将现有字体描述符转换为属性列表,也可以将单个font descriptor attribute与现有字体描述符一起使用。
对于其他小部件,一些小部件允许您直接指定Pango属性列表或字体描述符;检查他们的文件。对于所有其他人,请使用CSS。
答案 1 :(得分: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)
我使用'拥有'来正常工作,但我还没有找到另一种方式。
谢谢。