Пустой экран Ncurses при запуске

Всякий раз, когда я запускаю следующую программу, я получаю пустой экран, а не строку «привет»:

use ncurses as n;

fn main() {
    render::setup_ncurses();
    let win = n::newwin(30, 30, 0, 0);
    n::waddstr(win, "hello");
    n::wrefresh(win);
    // n::refresh(); <-- this doesn't work either
    n::getch();
    // n::wgetch(win); <-- doesn't work either
    n::endwin();
}

С функцией настройки:

pub fn setup_ncurses() {
    // Allows for wide characters
    n::setlocale(n::LcCategory::all, "");
    n::initscr();
    // Captures signal sequences and no buffer
    n::raw();
    // F keys and arrows
    n::keypad(n::stdscr(), true);
    // Doesn't echo typed keys
    n::noecho();
}

Есть ли какое-то странное поведение с окнами, которые мне не хватает? Этого не происходит при использовании stdscr.

Почему Python в конце концов умрет
Почему Python в конце концов умрет
Последние 20 лет были действительно хорошими для Python. Он прошел путь от "просто языка сценариев" до основного языка, используемого для написания...
1
0
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Изменять:

let win = n::newwin(30, 30, 0, 0);

для:

let win = n::subwin(n::stdscr(), 30, 30, 0, 0);

Спасибо, это работает, но я попытался просмотреть документацию для sub win и не совсем понимаю, почему это имеет значение. Вы не против объяснить?

jeanluc 24.12.2020 20:23

Другие вопросы по теме