periodisch neu zeichnen

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

HI

ich bin pygtk anfänger. Ich habe jetzt etwas mit cairo gezeichnet und will das dieses Bild zB 4 mal die Sekunde neu aufgebaut wird(von anderen werten abhänig verändert). Ich habe jetzt eine klasse die eine expose evnet handler hat, der self.draw(context) aufruft. Die draw funktion geht auch (genug, das ich den rest selbst hinkriege zumindestens :) muss da noch mal was im mathebuch nachsehen..). Ein zusätzliche problem bei diesen Zeichenen ist allerdings, das das periodische event in einer anderen klasse ausglöset werden soll und dann nur die redraw funktion von mehreren instanzen der oben erwähnten klasse aufrufen soll

Kann mir bitte wer ein kleines bisschen Beispielcode geben? Ich finde einfach nichts dazu, oder nur zu komplizertes :(

Wäre super, wenn ihr mir helfen könntet :wink:
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Einfach die `queue_draw`-Methode von deinem Widget aufrufen, eventuell gefolgt von der `process_updates`-Methode des `gdk.Window`s des Widgets, wenn man das neuzeichnen sofort erzwingen will.

Hier ein Beispiel, in dem das Widget alle 250 ms neu gezeichnet wird.

Man könnte die Werte natürlich auch irgendwie mit Properties bauen, so dass das Widget automatisch neugezeichnet wird, wenn man einen Wert ändert.
Antworten