Guten Morgen,
vor kurzem hab ich mit Python angefangen und gewöhn mich langsam dran. Jetzt hab ich ein Problem, bei dem ich nicht so recht weiterkomm. Erst mal die Grobdaten:
def __init__(self, stdscr, aktien, bitcoin, dax, depot):
pass # viele Initialisierungen
def update_view(self, data):
while 1:
data.update()
self.__stdscr.clear()
self.__print_time()
self.__print_head()
self.__print_dax()
zeile = 5
for aktie in self.__aktien:
self.__print_aktie(zeile, aktie.get_data())
zeile += 1
zeile = self.__print_aktie(zeile, self.__bitcoin.get_data(), True)
self.__print_depot(zeile, self.__depot.get_data())
self.__stdscr.refresh()
time.sleep(1200) # <---- das da soll bei UI-Resize abgebrochen werden
def main(stdscr):
data = Data()
# Anzeigeaktualisierung in eigenem Thread
clock = threading.Thread(target=out.update_view, args=(data, ))
clock.daemon = True
clock.start()
# Abbruchroutine
while True:
event = stdscr.getch()
if event == curses.KEY_RESIZE:
pass
# sende irgendein Signal an den Thread zum Interrupt des Sleeps
if event == ord("q"):
break
[/src]
Wie krieg ich das am besten gebacken?
vor kurzem hab ich mit Python angefangen und gewöhn mich langsam dran. Jetzt hab ich ein Problem, bei dem ich nicht so recht weiterkomm. Erst mal die Grobdaten:
- Python3 mit ncurses
- Das Programm holt alle 20 Minuten Daten aus dem Internet und aktualisiert die Ansicht.
- Die UI-Darstellung erfolgt in einem eigenen Thread
- Auf Knopfdruck und Konsole-Resize sollte das sleep im Thread unterbrochen/übergangen werden, um die UI und die Daten zu aktualisieren.
def __init__(self, stdscr, aktien, bitcoin, dax, depot):
pass # viele Initialisierungen
def update_view(self, data):
while 1:
data.update()
self.__stdscr.clear()
self.__print_time()
self.__print_head()
self.__print_dax()
zeile = 5
for aktie in self.__aktien:
self.__print_aktie(zeile, aktie.get_data())
zeile += 1
zeile = self.__print_aktie(zeile, self.__bitcoin.get_data(), True)
self.__print_depot(zeile, self.__depot.get_data())
self.__stdscr.refresh()
time.sleep(1200) # <---- das da soll bei UI-Resize abgebrochen werden
def main(stdscr):
data = Data()
# Anzeigeaktualisierung in eigenem Thread
clock = threading.Thread(target=out.update_view, args=(data, ))
clock.daemon = True
clock.start()
# Abbruchroutine
while True:
event = stdscr.getch()
if event == curses.KEY_RESIZE:
pass
# sende irgendein Signal an den Thread zum Interrupt des Sleeps
if event == ord("q"):
break
[/src]
Wie krieg ich das am besten gebacken?