FAQ Python

FAQ PythonConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 14 juin 2021
Sommaire→GUI→pyGTK
	Les ressources en français sur PyGTK sont relativement peu abondantes. Vous avez cependant à votre disposition un tutoriel et sa traduction qui vous
	apportetons énormément d'informations.
- Tutoriel PyGTK 2.0 (traduction)
 - PyGTK Tutorial 2.0
 
Lorsque vous appelez une fonction qui prend énormément de temps et qui se passe dans le thread principal, il arrive que l'application se fige. Néanmoins, vous pouvez forcer le raffraîchissement de l'application en rajoutant à des endroits stratégiques l'instruction gtk.main_iteration().
# -*- coding: cp1252 -*-
import pygtk
pygtk.require('2.0')
import gtk, gobject
 
class TestUpdate:
    def affiche(self, widget, data=None):
        for i in range(100000):
            self.lbl.set_text(str(i))
            ## Raffraîchissement de la fenêtre pour voir l'apparition de tous les nombres
            gtk.main_iteration()  
 
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_resizable(True)
 
        self.window.set_title("Test Raffraîchissement")
        self.window.set_border_width(0)
 
        vbox = gtk.VBox(False, 5)
        vbox.set_border_width(10)
        self.window.add(vbox)
        vbox.show()
  
        align = gtk.Alignment(0.5, 0.5, 0, 0)
        vbox.pack_start(align, False, False, 5)
        align.show()
 
        self.lbl = label = gtk.Label('')
        align.add(self.lbl)
        self.lbl.show()
 
        button = gtk.Button("Affiche")
        button.connect("clicked", self.affiche)
        vbox.pack_start(button, False, False, 0)
 
        button.set_flags(gtk.CAN_DEFAULT)
        button.grab_default ()
        button.show()
 
        self.window.show()
 
def main():
    gtk.main()
    return 0
 
if __name__ == "__main__":
    TestUpdate()
    main()


