hallo,
ich hab hier schon ein paar schräge fragen gestellt, und neben berechtigter kritik auch viele sehr gute ratschläge erhalten.
mittlerweilen läuft ein digitaler zwilling, in python mit tkinter erstellt, und virtualisiert eine kleine modellfabrik (bestückung, förderband, stopper...solche dinge).
leitechnische skripte können am zwilling entwickelt werden, und sind duch einfaches tauschen einer klassenbibliothek vom zwilling auf die reale anlage übertragbar.
ein nettes gimmick wäre jetzt, den zwilling (also die tkinter-grafik), browserfähig zu machen. es könnte z.b. jedesmal, wenn die grafik refresh macht (.update), ein bild gezogen, und im apache "online" angeboten werden. bevor ich mich jetzt selbst ans werk mache : weiß jemand, ob es sowas schon gibt ?
tkinter aus browser betrachten
Wenn du es im Browser brauchst, warum hast du dann nicht gleich eine Webanwendung draus gemacht? Dann hättest du doch die ganze GUI dort abbilden können.
Ansonsten ist mir kein Weg bekannt TK irgenwie im Browser darzustellen.
Ansonsten ist mir kein Weg bekannt TK irgenwie im Browser darzustellen.
-
- User
- Beiträge: 72
- Registriert: Samstag 15. Juli 2017, 18:47
die browserdarstellung wäre nur eine nette erweiterung, ist nicht zwingend nötig.
ich würde es deshalb auch nicht komplett als webanwednung neu schreiben ...
ich hatte mal eine anwendung, in der in 10hz-raster standbilder einer kamera auf dem http-kanal ausgegeben wurden, das war ein brauchbarer "livestream".
so ähnlich dachte ich mir das mit tkinter, es müßte halt einen weg geben, das update-bild der grafik als gif oder so einigermaßen flott zu exportieren.
ich würde es deshalb auch nicht komplett als webanwednung neu schreiben ...
ich hatte mal eine anwendung, in der in 10hz-raster standbilder einer kamera auf dem http-kanal ausgegeben wurden, das war ein brauchbarer "livestream".
so ähnlich dachte ich mir das mit tkinter, es müßte halt einen weg geben, das update-bild der grafik als gif oder so einigermaßen flott zu exportieren.
- __blackjack__
- User
- Beiträge: 14018
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@reinerdoll: Der einfachste/generischste Weg GUI-Anwendunge in den Browser zu bringen dürfte so etwas wie noVNC sein, also einfach den gesamten Desktop per VNC in den Browser.
Ansonsten ist das natürlich reichlich ineffizient Bilder/Schnappschüsse von der Anwendung in den Browser zu bringen, egal ob man das nun mit VNC oder etwas was man selbst programmiert, macht.
Ich würde dann doch eher etwas mit Websockets und JavaScript und Canvas auf der Client-Seite programmieren und vielleicht eine Facade für `tkinter`'s `Canvas` die gleichzeitig das `Canvas` bearbeitet und diese Informationen gegebenenfalls per Websocket auch an einen Webbrowser schickt.
Ansonsten ist das natürlich reichlich ineffizient Bilder/Schnappschüsse von der Anwendung in den Browser zu bringen, egal ob man das nun mit VNC oder etwas was man selbst programmiert, macht.
Ich würde dann doch eher etwas mit Websockets und JavaScript und Canvas auf der Client-Seite programmieren und vielleicht eine Facade für `tkinter`'s `Canvas` die gleichzeitig das `Canvas` bearbeitet und diese Informationen gegebenenfalls per Websocket auch an einen Webbrowser schickt.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
-
- User
- Beiträge: 72
- Registriert: Samstag 15. Juli 2017, 18:47
damit kann ich in tkinter schnappschüsse machen :
twin = tk.Canvas(width=900, height=800)
def getter(widget):
x=widget.winfo_rootx()+widget.winfo_x()
y=widget.winfo_rooty()+widget.winfo_y()
x1=x+widget.winfo_width()
y1=y+widget.winfo_height()
ImageGrab.grab().crop((x,y,x1,y1)).save("d:\canvastest.jpg")
die muß ich noch richtig parametrieren, dann sollte ein "ratterfilm" (erinnerung an die slapstick-zeit
möglich sein. das würde mir reichen ..
twin = tk.Canvas(width=900, height=800)
def getter(widget):
x=widget.winfo_rootx()+widget.winfo_x()
y=widget.winfo_rooty()+widget.winfo_y()
x1=x+widget.winfo_width()
y1=y+widget.winfo_height()
ImageGrab.grab().crop((x,y,x1,y1)).save("d:\canvastest.jpg")
die muß ich noch richtig parametrieren, dann sollte ein "ratterfilm" (erinnerung an die slapstick-zeit
