Mostrando postagens com marcador pygtk. Mostrar todas as postagens
Mostrando postagens com marcador pygtk. Mostrar todas as postagens

segunda-feira, 13 de setembro de 2010

mudar o tamanho da fonte de um gtk.TextView.

import gtk
import pango
 
window = gtk.Window()
textview = gtk.TextView()
textview.set_size_request(300,300)
font = pango.FontDescription("Arial 20")
textview.modify_font(font)
window.add(textview)
window.set_size_request(200,200)
window.set_position(gtk.WIN_POS_CENTER)
window.show_all()

gtk.main()

quinta-feira, 9 de setembro de 2010

gtk.Label link that executes a function.

import gtk

def imprimir(*args):
    print "olá mundo"
    return True
window = gtk.Window()
label = gtk.Label()
label.set_markup('exemplo clique aqui')
label.connect('activate-link', imprimir)
window.add(label)
window.connect('destroy', gtk.main_quit)
window.show_all()

gtk.main()

quarta-feira, 8 de setembro de 2010

redimensionando Gtk.Label dinamicamente

exemplo de como ter um label dinâmico e com multi-linhas (dependendo do tamanho do texto).
import gtk

class DynamicLabel(gtk.Window):
    def __init__(self):
        gtk.Window.__init__(self)

        self.set_title("Dynamic Label")
        self.set_size_request(1, 1)
        self.set_default_size(300,300) 
        self.set_position(gtk.WIN_POS_CENTER)

        l = gtk.Label("Dynamic Label" * 10)
        l.set_line_wrap(True)
        l.connect("size-allocate", self.size_request)

        vbox = gtk.VBox(False, 2)
        vbox.pack_start(l, False, False, 0)


        self.add(vbox)
        self.connect("destroy", gtk.main_quit)
        self.show_all()

    def size_request(self, l, s ):
        l.set_size_request(s.width -1, -1)

DynamicLabel()
gtk.main()

sábado, 24 de julho de 2010

executando programas de forma assíncrona com glib.spawn_async

a função glib.spawn_async executa um programa assincronamente (seu código não ira bloquear esperando pelo fim da execução do programa)

o programa é especificado por um único argumento que deve ser fornecido. Por padrão, deve-se especificar o path do programa, exemplo "/bin/ls".

exemplo de uso:
import glib, gtk, os

class spaw_async(object):
   
    def __init__(self):
       
        pid = glib.spawn_async(["/bin/sleep", '3'])[0]
        glib.timeout_add(100, self.terminar, pid)
       
       
    def terminar(self, pid):

        try:
            os.kill(pid, 0)
            return True
           
        except OSError:
            print "o processo terminou"
            gtk.main_quit()
            return False
       
spaw_async()
gtk.main()

glib.spawn_async retorna uma tupla com 4 itens que são: pid stdin stdout e stderr.