#python #curses #python-curses
Вопрос:
Я запускаю многопроцессорную систему на Python, и я планировал использовать проклятия, чтобы разделить окно терминала на 4 квадранта и отобразить результаты каждого из процессов в одном из них.
Итак, конечный результат должен выглядеть примерно так:
--------------------------------
| | |
| PROCESS01 | PROCESS02 |
| | |
---------------------------------
| | |
| PROCESS03 | PROCESS04 |
| | |
---------------------------------
До сих пор я пытался разбить окно на 4 площадки, вот так:
def main():
screen = curses.initscr()
cols_tot = curses.COLS
rows_tot = curses.LINES
cols_mid = int(0.5*cols_tot) ## middle point of the window
rows_mid = int(0.5*rows_tot)
pad11 = curses.newpad(rows_mid, cols_mid)
pad12 = curses.newpad(rows_mid, cols_mid)
pad21 = curses.newpad(rows_mid, cols_mid)
pad22 = curses.newpad(rows_mid, cols_mid)
pad11.addstr(0, 0, "*** PROCESS 01 ***")
pad12.addstr(0, 0, "*** PROCESS 02 ***")
pad21.addstr(0, 0, "*** PROCESS 03 ***")
pad22.addstr(0, 0, "*** PROCESS 04 ***")
pad11.refresh(0,0, 0,0, rows_mid,cols_mid)
pad12.refresh(0,cols_mid, 0,cols_mid, rows_mid,cols_tot-1)
pad21.refresh(rows_mid,0, rows_mid,0, cols_tot-1,rows_mid)
pad22.refresh(rows_mid, cols_mid, rows_mid,cols_mid, rows_tot-1,cols_tot-1)
curses.napms(3000)
curses.endwin()
if __name__ == '__main__':
main()
но я получаю ошибку:
File "screen_show.py", line 78, in <module> main()
File "screen_show.py", line 46, in main
pad12.refresh(0,cols_mid, 0,cols_mid, rows_mid,cols_tot-1)
_curses.error: prefresh() returned ERR
Комментарии:
1.
prefresh
вернет ошибку, если координаты экрана (последние 4 параметра) находятся за пределами физических границ экрана (см. Код ).