-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo, für folgendes Problem fehlt mir als Python-Laie ein Lösungsansatz: In einem Widget (bei mir gtk.Table) ist ein Teil ein gtk.Label mit einem aus einer Datei ausgelesenen Wert. Der ausgelesene Wert kann sich verändern. Ich möchte daher also z.B. alle x Sekunden in der Datei den Wert nachlesen und das gtk.Label mit einem neuen Wert versehen. Ohne GTK also z.B. in dieser Art: while True: Datei=("datei", "r") text = Datei.readline() Datei.close() Die Variable "text" aus dem Beispiel möchte ich auslesen, ohne dass das Programm in einer Schleife hängen bleibt. Übersehe ich da etwas oder ist es wirklich etwas aufwändiger? Danke und Gruß, Carsten - -- Get my GnuPG-Key with: gpg --keyserver search.keyserver.net --recv-keys 6D3C4E34 Fingerprint: A995 DAC2 7AFD A31E C5E6 F92A ACEB 185C 6D3C 4E34 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCoe4erOsYXG08TjQRApcOAJwJ4XbrnOJuXKTRd65KsJj/kqOXSQCfd1Qj b1WT6+1gh3o8x9H3dutMjl8= =fyVT -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Carsten wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo, für folgendes Problem fehlt mir als Python-Laie ein Lösungsansatz: In einem Widget (bei mir gtk.Table) ist ein Teil ein gtk.Label mit einem aus einer Datei ausgelesenen Wert. Der ausgelesene Wert kann sich verändern. Ich möchte daher also z.B. alle x Sekunden in der Datei den Wert nachlesen und das gtk.Label mit einem neuen Wert versehen. Ohne GTK also z.B. in dieser Art:
while True: Datei=("datei", "r") text = Datei.readline() Datei.close()
Die Variable "text" aus dem Beispiel möchte ich auslesen, ohne dass das Programm in einer Schleife hängen bleibt. Übersehe ich da etwas oder ist es wirklich etwas aufwändiger?
Ich denke was du brauchst ist ein Timer-Event, das den GTK Mainloop immer wieder mal dazu bringt das Stück code zum einlesen des Wertes auszuführen. Ich selber benutze kein GTK, darum kann ich da mehr nicht zu sagen. Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Hallo, die Standardformulierung für PyGTK ist while gtk.events_pending(): gtk.main_iteration() Da aus deiner Mail aber nicht hervorgeht, an welcher Stelle wie welches Widget aktualisiert wird, kann ich nicht genau sagen, wie du dieses Fragment in deine Applikation einbaust. In einem Callback innerhalb einer "Reader"-Funktion würde das sinnvoll sein. Carsten wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo, für folgendes Problem fehlt mir als Python-Laie ein Lösungsansatz: In einem Widget (bei mir gtk.Table) ist ein Teil ein gtk.Label mit einem aus einer Datei ausgelesenen Wert. Der ausgelesene Wert kann sich verändern. Ich möchte daher also z.B. alle x Sekunden in der Datei den Wert nachlesen und das gtk.Label mit einem neuen Wert versehen. Ohne GTK also z.B. in dieser Art:
while True: Datei=("datei", "r") text = Datei.readline() Datei.close()
Die Variable "text" aus dem Beispiel möchte ich auslesen, ohne dass das Programm in einer Schleife hängen bleibt. Übersehe ich da etwas oder ist es wirklich etwas aufwändiger? Danke und Gruß, Carsten - -- Get my GnuPG-Key with: gpg --keyserver search.keyserver.net --recv-keys 6D3C4E34 Fingerprint: A995 DAC2 7AFD A31E C5E6 F92A ACEB 185C 6D3C 4E34 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCoe4erOsYXG08TjQRApcOAJwJ4XbrnOJuXKTRd65KsJj/kqOXSQCfd1Qj b1WT6+1gh3o8x9H3dutMjl8= =fyVT -----END PGP SIGNATURE-----
------------------------------------------------------------------------
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andi Albrecht schrieb: Hallo, danke für den Hinweis.
die Standardformulierung für PyGTK ist
while gtk.events_pending(): gtk.main_iteration()
Da aus deiner Mail aber nicht hervorgeht, an welcher Stelle wie welches Widget aktualisiert wird, kann ich nicht genau sagen, wie du dieses Fragment in deine Applikation einbaust. In einem Callback innerhalb einer "Reader"-Funktion würde das sinnvoll sein.
Der entsprechende Abschnitt sieht (momentan) etwa so aus: class Status: def __init__(self): ... table = gtk.Table(2,2) ... label = gtk.Label(andere_klasse.get_file_content()) label.show() table.attach(label, 1,2,1,2) ... Die Funktion get_file_content() gibt einen String zurück, den sie aus einer Datei ausliest. Aber natürlich wird das Label dann beim Erstellen das Klassenmitglieds gefüllt und in die Tabelle gezeichnet. Der Dateiinhalt kann sich aber ändern und "label" sollte deshalb regelmäßig aktualisiert werden. Gruß, Carsten - -- Get my GnuPG-Key: gpg --keyserver search.keyserver.net --recv-keys 6D3C4E34 Fingerprint: A995 DAC2 7AFD A31E C5E6 F92A ACEB 185C 6D3C 4E34 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCohc4rOsYXG08TjQRAiCSAKCw3mUdyOJsXqv/EAdH1dlgYdYFMgCgxrR1 omjRTN0cHX8w70qqSIgFZYA= =ehPJ -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Carsten schrieb:
Der entsprechende Abschnitt sieht (momentan) etwa so aus:
class Status: def __init__(self): ... table = gtk.Table(2,2) ... label = gtk.Label(andere_klasse.get_file_content()) label.show() table.attach(label, 1,2,1,2) ...
Nachtrag: Die anderen Tabellenfelder bleiben konstant und sollen möglist nicht jedes Mal neu aufgebaut werden, wenn "label" einen neuen Inhalt bekommt. Gruß, Carsten - -- Get my GnuPG-Key: gpg --keyserver search.keyserver.net --recv-keys 6D3C4E34 Fingerprint: A995 DAC2 7AFD A31E C5E6 F92A ACEB 185C 6D3C 4E34 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCoh2xrOsYXG08TjQRAnUKAJ9qhDls4ONJ60ZvJEho9FJoxGLFYACghHaW HnydsmrJ/+hjKmesUpDZGRo= =r3+g -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (3)
-
Andi Albrecht
-
Carsten
-
Diez B. Roggisch