Wo kommt bei TKinter die Anwendungsprogrammierung hin ???

Fragen zu Tkinter.
Antworten
mikehydro
User
Beiträge: 20
Registriert: Mittwoch 11. Juni 2008, 19:10
Wohnort: Wachtberg bei Bonn

Ich hab ein kleines TKinter am laufen ......
Ich hab eine Python-Anwendung am laufen ......

TKinter soll die Python-Anwendung steuern und Daten aus der Anwendung anzeigen .


Wo muß jetzt der Code für die Anwendung hin ???

Muß TKinter in meine Anwendung eingebunden werden ??
Oder muß mein Anwendungs-Code in TKinter eingebunden werden ??
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Letzteres. Vereinfacht dargestellt: Du importierst deine Anwendung in das Modul, in dem du deine Tkinter-Anwendung hast, und bindest die Methoden der Anwendung direkt oder indirekt an die Schaltflächen deiner Oberfläche.

Edit: Mißverständlichkeit beseitigt (hoffentlich)
mikehydro
User
Beiträge: 20
Registriert: Mittwoch 11. Juni 2008, 19:10
Wohnort: Wachtberg bei Bonn

Leider nur teilweise .....
Leider nur der Teil der schon funktioniert ......

Was mache ich, wenn ich wie beschrieben Daten verarbeiten muß, die nicht vom TKinter kommen, sondern von "außen". z.B. Netzwerk, serielle Schnittstelle o.ä." kommen.

Diese Daten müssen doch sofort verarbeitet werden und nicht erst, wenn ich einen Button "Daten einlesen" drücke.

Wo packe ich die "Automatik" hin ????
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

In deine Logik. Tkinter hat damit gar nichts zu tun, ausser die passende Funktion aufzurufen. Dass du das trennen solltest, war auch schon die Antwort auf deine andere Frage (die ich als quasi identisch mit dieser betrachte).

Wenn du dir die Frage stellt, wie du das in Tkinter packst, dann bist du auf dem besten Weg das falsch zu machen.

Und bitte achte auf den Questionmark Overflow.
mikehydro
User
Beiträge: 20
Registriert: Mittwoch 11. Juni 2008, 19:10
Wohnort: Wachtberg bei Bonn

Danke für Deine Reaktion und Deinen Questionmark-Hinweis.

Leider hast Du meine Frage nicht beantwortet.
Bin ich so schlecht im Fragenformulieren.

Frage:
Wenn Daten von der Logikseite vorhanden sind, wie bekommt TKinter das mit.
Nach Deinen Vorschlag müsste ich dauerhaft vor den PC sitzen und einen Button anklicken.
TKinter weiß doch gar nicht, wenn sich in der Logik Daten geändert haben.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Du kannst mit der after()-Methode in regelmäßigen Abständen abfragen, ob sich ein bestimmter Zustand geändert hat und darauf dann entsprechend reagieren.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo mikehydro

Hier noch etwas zum herumexperimentieren auf der von numerix erwähnten after()-Methode. Empfangsdaten werden mit einem Zyklus von 1 Sekunde aus dem Logik-Modul abgefragt:
http://paste.pocoo.org/show/144470/

Viel Spass beim experimentieren!

Gruss wuf :wink:
Zuletzt geändert von wuf am Montag 12. Oktober 2009, 08:16, insgesamt 1-mal geändert.
Take it easy Mates!
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Vielleicht hilft Dir noch dieses bei der Organisation Deines Codes:

http://www.python-forum.de/post-134394.html#134394

Zum Testen einfach beide Dateien in ein Verzeichnis kopieren und 'threaded.py' aufrufen.

:wink:
yipyip
mikehydro
User
Beiträge: 20
Registriert: Mittwoch 11. Juni 2008, 19:10
Wohnort: Wachtberg bei Bonn

Danke. Gelöst.

Die Antworten haben mich nun wirklich weiter gebracht.
Besonders die Anregung von WUF war sehr informativ.

Danke nochmal und schönes WE.


Mikehydro
Antworten