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

#rust #ncurses

#Ржавчина #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();
}
 

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

Ответ №1:

Изменить:

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

для:

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

Комментарии:

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