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
Text Widget als Ausgabe von Log-Meldungen
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.
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.
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:
Ich werde dann mal versuchen eine entsprechende Klasse zu bauen. Nur einen Teil verstehe ich an Deinen Ausführungen noch nicht. Und zwar:
Was genau meinst Du damit? Hast Du vlt. ein Beispiel wie man es nicht machen sollte?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...
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.