Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/02/2010, à 18:53

smo

Défi pygtk, screenshot d un widget non affiche et retourner un pixbuf

hello

tout est dans le titre

j ai une combobox, dans cette combobox j ai une liste de theme gtk liees a leur gtkrc etc

quand j en selectionne une, j appel depuis mon programme principale ce script python qui cree le widget, l affiche et genere une image

je reprend ensuite dans mon code principal et genere le pixbuf de cette meme image

ce que je voudrais c est, ne pas afficher ce widget, executer tout ca en interne et que ca me retourne direct un pixbuf simplement

le code actuel:

# Copyright 2009 David D Lowe
# released under the GPL v3

import gtk
import os
import sys
from functions import _

target_img = sys.argv[1]
gtkrc = sys.argv[2]

def gtk_generate(target_img, gtkrc):
    
    window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    window.connect("destroy",  lambda widget: sys.exit(1))
    window.resize(100, 35)
    window.set_property("skip-pager-hint", True)
    window.set_property("skip-taskbar-hint",  True)
    
    hbox = gtk.HBox()
    window.add(hbox)
    button = gtk.Button()
    button.set_label(_("Button"))
    hbox.pack_start(button)
    chkbox = gtk.CheckButton()
    chkbox.set_active(True)
    hbox.pack_end(chkbox,  False)
    radiobox = gtk.RadioButton()
    hbox.pack_end(radiobox,  False)
    
    #window.realize()
    take_screenshot(hbox,  target_img)
    sys.exit(0)
    
def take_screenshot(widg,  target_img):
    print widg
    pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,1,8,100,34)
    pm = widg.get_snapshot(None)
    pb = pb.get_from_drawable(pm,  pm.get_colormap(),  0, 0, 0, 0, 100,  34)
    if pb is not None:
        pb.save(target_img,  "png")
    else:
        print >> sys.stderr,  "Error getting image"
        sys.exit(3)

#################### 

gtk_generate(target_img, gtkrc)

j ai discute avec les dev de gtk+ hier, un nouveau widget sera dispo des la version 2.20 qu ets en gros comme un gtk.window mais qu on a pas besoin d afficher big_smile

avec des methodes pour obtnir un pixbuf ou pixmap pepere

voila comment on peux faire ca en python actuellement en gros... wink

defi!!!

++

Hors ligne