gtk.Label con Pango

Publicado el mié 03 septiembre 2008

Este tips es para quienes necesitan aplicar atributos de tamaño, color, estilo, etc. a una interfaz en PyGTK.
Esto nos permite declarar el texto del gtk.Label como texto plano, sin incluir etiquetas pango.
A continuación un ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk
import pango

class Gui:
    def __init__(self):
        #Creo una lista de atributos
        self.atributos = pango.AttrList()
        #inserto el tamaño (tamaño_en_puntos * 1000)
        #el 0,-1 indica que se aplica a todo el texto del label.
        self.atributos.insert(pango.AttrSize(30000,0,-1))
        #inserto el grosor
        #200=ultra-light, 300=light, 400=normal, 700=bold, 800=ultra-bold, 900=heavy
        self.atributos.insert(pango.AttrWeight(700,0,-1))
        #Genero la ventana
        self.window = gtk.Window()
        #asigno un título a la ventana
        self.window.set_title("Label con Pango")
        #defino el tamaño de la ventana
        self.window.set_default_size(180, 240)
        #conecto el evento "destroy" con la función self.quit.
        self.window.connect("destroy", self.quit)

        #creo el Label
        self.etiq = gtk.Label('hola')
        #aplico los atributos al label.
        self.etiq.set_attributes(self.atributos)
        #agrego el label a la ventana
        self.window.add(self.etiq)
        #cambio todo a visible
        self.window.show_all()
        #Corro el main loop.
        gtk.main()


    def quit(self, data):
        '''Finaliza el main loop'''
        gtk.main_quit()

#Creo instancia del objeto
Gui()

Pueden encontrar el listado completo de atributos en la api de pygtk.