Text Widget als Ausgabe von Log-Meldungen

Fragen zu Tkinter.
Antworten
frosty
User
Beiträge: 5
Registriert: Samstag 13. Februar 2010, 15:14

Hallo alle zusammen,

ich schreibe eine Anwendung, die verschiedene andere Programme mittels subprocess aufruft. Die Rückgaben der Programme möchte ich mit Datum und Uhrzeit sowohl in eine Datei schreiben, als auch in der GUI in einem Log-Fenster anzeigen lassen.
Kann ich für die Anzeige in der GUI das Text-Widget verwenden oder gibt es da andere Widgets die geeigneter sind?

Wenn ich das richtig verstanden habe, kann ich in das text-widget nur mit der insert-Methode text anhängen, oder?

Und meine letzte Frage, kann ich das Text-Widget gegen Eingaben des Benutzers "sperren"?

Danke euch!
Gruß,
frosty
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Wenn du Tkinter nutzt, ist das Textwidget die beste Wahl für ein Log fenster. Um die "insert"-Methode wirst du nicht herum kommen, aber bei einem Log muss immer nur hinten etwas angehangen werden, hierfür gibt es die Konstante "end". Sperren kann man den Text allerdings nur in dem man das Widget "disabled", kleiner Nachteil das man dann auch kein "insert" ausführen kann, hier muss man immer vor dem "insert" den Status von "disabled" auf "enabled" und wieder zurück schalten. (aber es geht ohne das man es als Benutzer mitbekommt)

Schwieriger wird die Art wie du es füllen willst, da deine Daten von anderen Prozessen kommen, solltest du aufpassen, dass das füttern des Textwidgets nicht von diesen erzwungen werden, da es sonst, wie in vielen GUIs, zu dem absturz des Programmes führen kann. Man könnte hier die Daten in ein "queue" packen und diese dann selbstständig von Tkinter auslesen lassen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
frosty
User
Beiträge: 5
Registriert: Samstag 13. Februar 2010, 15:14

Danke sehr Xynon1!

Ich werde dann mal versuchen eine entsprechende Klasse zu bauen. Nur einen Teil verstehe ich an Deinen Ausführungen noch nicht. Und zwar:
Xynon1 hat geschrieben:... solltest du aufpassen, dass das füttern des Textwidgets nicht von diesen erzwungen werden, da es sonst, wie in vielen GUIs, zu dem absturz des Programmes führen kann...
Was genau meinst Du damit? Hast Du vlt. ein Beispiel wie man es nicht machen sollte?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Ich hätte jetzt nichts konkretes da, bau erst mal dein Script. Wenn er so weit ist dass das Logging funktioniert und du die GUI einbauen willst, poste ihn und dann kann man mehr dazu sagen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten