Я пытаюсь создать консольную программу, которая использует проклятия, чтобы иметь хороший дисплей.Для этого я создал два окна, которые представляют половину терминала.
Для этого у меня есть
def display(self):
size_y,size_x = self.stdscr.getmaxyx()
window_stat = curses.newwin(size_y,size_x//2-5,0,0)
window_alert = curses.newwin(size_y,size_x//2-5,0,size_x//2+5)
window_alert.border()
window_stat.border()
window_alert.addstr(self.alert2string())
window_stat.addstr(self.stat2string())
self.stdscr.refresh()
window_stat.refresh()
window_alert.refresh()`
У меня все равно есть две проблемы.Прежде всего, когда я использую .border()
, строки не в хороших местах.Меняет ли рамка что-либо с содержимым окна?
Вот как они выглядят:
No data has been collected in the last 10 seconds.────┐ No alert.─────────────────────────────────────────────┐
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└─────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────┘
Я хочу, чтобы они были в коробке.Я думаю, я могу просто добавить как "\n "
перед ними, но возможно ли, чтобы это было более чисто?
И, проблема, которая выглядит более сложной: display()
вызывается каждые 10 секунд, но еслиЯ изменяю размер терминала, self.stdscr.getmaxyx()
остается в любом случае.Есть ли способ понять, что терминал имеет другой размер, чем раньше?
Большое спасибо, Djaz