Python unclosable Window mit HTML, CSS
Hi zusammen,
ich habe mir eine kleine Python Anwendung geschrieben. Diese soll ein Fenster öffnen und hört auf ein Event (threading). Wenn das Event gesetzt ist (Event.is_set()), dann soll das Fenster geschlossen werden.
Zuerst wollte ich es mit mttkinter versuchen, nur leider möchte ich eine HTML Seite laden, welche damit nicht richtig gerendert wird... Zwar kann ich Text Farben und Hintergrundfarben ändern und auch Links in die HTML einbauen, aber alle anderen Styles werden nicht geladen, egal ob inline style, intern style oder externes stylesheet.
Falls jemand dazu eine Lösung hätte, dann würde sich der Rest erübrigen, weil ich meinen Code gerne mit einem mttkinter Fenster machen würde, da ich hier viel mehr Freiheiten habe, um Eigenschaften des Fensters festzulegen... (was passiert beim klicken auf den Exit Button, welche Knöpfe habe ich, will ich das Fenster im Vordergrund und im Vollbildmodus haben, ... ?
Da ich es nicht geschafft habe, die HTML korrekt zu laden, wollte ich eine andere Lösung finden. Da bei uns Mozilla Firefox auf allen Rechnern installiert ist, wollte ich testen, diesen im Kiosk Mode zu starten.
Leider funktioniert es hier aber nicht richtig. Starte ich Notepad und lade die HTML, dann gibt es kein Problem, das Programm wartet, bis das Fenster geschlossen wurde und öffnet es erneut, falls es geschlossen wird vor dem stop Event.
Mit firefox aber hält der code nicht an.... Das liegt daran, dass der Prozess, der hier aufgerufen wird, sich wieder schließt und dafür 10 weitere Prozesse startet. Komisch ist aber, wenn ich den Prozess anders starte, dann hält das Programm an und wartet, bis das Fenster geschlossen wurde:
Das Problem ist nur, dass ich hier nicht checken kann, ob das stop Event gesetzt ist, und ich das Fenster nicht vom Code aus schließen kann. Der Code läuft aber weiter, sobald ich das Fenster schließe.
Ich suche eine Möglichkeit, ein Fenster immer und immer wieder zu öffnen wenn es geschlossen wurde, während das stop Event nicht gesetzt ist, und automatisch geschlossen wird, wenn dieses gesetzt ist.
Vielen Dank schonmal im Voraus,
Micha
ich habe mir eine kleine Python Anwendung geschrieben. Diese soll ein Fenster öffnen und hört auf ein Event (threading). Wenn das Event gesetzt ist (Event.is_set()), dann soll das Fenster geschlossen werden.
Zuerst wollte ich es mit mttkinter versuchen, nur leider möchte ich eine HTML Seite laden, welche damit nicht richtig gerendert wird... Zwar kann ich Text Farben und Hintergrundfarben ändern und auch Links in die HTML einbauen, aber alle anderen Styles werden nicht geladen, egal ob inline style, intern style oder externes stylesheet.
Falls jemand dazu eine Lösung hätte, dann würde sich der Rest erübrigen, weil ich meinen Code gerne mit einem mttkinter Fenster machen würde, da ich hier viel mehr Freiheiten habe, um Eigenschaften des Fensters festzulegen... (was passiert beim klicken auf den Exit Button, welche Knöpfe habe ich, will ich das Fenster im Vordergrund und im Vollbildmodus haben, ... ?
Da ich es nicht geschafft habe, die HTML korrekt zu laden, wollte ich eine andere Lösung finden. Da bei uns Mozilla Firefox auf allen Rechnern installiert ist, wollte ich testen, diesen im Kiosk Mode zu starten.
import subprocess
def __run(self, topic: str, file: str, stop: Event) -> None:
while not stop.is_set():
if process and not process.pop():
process = subprocess.Popen(['C:/Program Files (x86)/Mozilla Firefox/firefox.exe', '--kiosk', file])
Leider funktioniert es hier aber nicht richtig. Starte ich Notepad und lade die HTML, dann gibt es kein Problem, das Programm wartet, bis das Fenster geschlossen wurde und öffnet es erneut, falls es geschlossen wird vor dem stop Event.
Mit firefox aber hält der code nicht an.... Das liegt daran, dass der Prozess, der hier aufgerufen wird, sich wieder schließt und dafür 10 weitere Prozesse startet. Komisch ist aber, wenn ich den Prozess anders starte, dann hält das Programm an und wartet, bis das Fenster geschlossen wurde:
result = subprocess.run(['C:/Program Files (x86)/Mozilla Firefox/firefox.exe', '--kiosk', 'assets/sites/fire.html'], capture_output=True)
Das Problem ist nur, dass ich hier nicht checken kann, ob das stop Event gesetzt ist, und ich das Fenster nicht vom Code aus schließen kann. Der Code läuft aber weiter, sobald ich das Fenster schließe.
Ich suche eine Möglichkeit, ein Fenster immer und immer wieder zu öffnen wenn es geschlossen wurde, während das stop Event nicht gesetzt ist, und automatisch geschlossen wird, wenn dieses gesetzt ist.
Vielen Dank schonmal im Voraus,
Micha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4246247366
Url: https://administrator.de/contentid/4246247366
Ausgedruckt am: 23.11.2024 um 20:11 Uhr