python curses многопоточность - PullRequest
0 голосов
/ 28 марта 2020

У меня проблема с проклятиями. Когда я пытаюсь отобразить текст в несколько windows, с программой происходит нечто странное. По всему окну появляются странные символы.

Я знаю, что это, кажется, исправлено в ncurses, но python не имеет этой библиотеки. Прошу помощи!

from signal import signal, SIGINT
from threading import Thread
from time import sleep
import curses


def main(scr):
    firstT = Thread(target=thr1)
    firstT.setDaemon(True)
    secondT = Thread(target=thr2)
    secondT.setDaemon(True)
    secondT.start()
    firstT.start()
    scr.getch()


def thr1():
    counter = 0
    win = curses.newwin(1, 5, 1, 1)
    while True:
        win.addstr(0, 0, str(counter))
        win.refresh()
        counter += 1
        sleep(0.5)


def thr2():
    counter = 0
    win1 = curses.newwin(1, 5, 2, 1)

    while True:
        win1.addstr(0, 0, str(counter))
        win1.refresh()
        counter += 1
        sleep(0.1)


def handler(signal_received, frame):
    curses.endwin()
    curses.curs_set(1)
    exit(0)


if __name__ == "__main__":
    signal(SIGINT, handler)
    curses.wrapper(main)


output

...