wbkgd не устанавливает цвет фона - PullRequest
0 голосов
/ 27 апреля 2020

Я использую Rust для написания приложения ncurses.

Я пытаюсь установить цвет subwin, но безуспешно. Я даже не уверен, что окно создано в первую очередь, или просто не хочет устанавливать цвет.

Вот минимальный пример:

use ncurses::*;

fn main() {
    setlocale(LcCategory::all, "");
    initscr();
    keypad(stdscr(), true);
    start_color();
    init_pair(1, COLOR_RED, COLOR_RED);
    loop {
        let user_input = get_wch();
        match user_input.unwrap() {
            WchResult::Char(ch) => {
                match ch {
                    27 => break,
                    _ => {}
                }
            },
            WchResult::KeyCode(code) => {
                match code {
                    KEY_F5 => {
                        let ln = subwin(stdscr(), LINES(), 5, 0, 0);
                        wbkgd(ln, COLOR_PAIR(1));
                        refresh();
                    },
                    _ => {}
                }
            }
        }
    }
    endwin();
}

Как видите, я инициализировал пару цветов и вызвал start_colors ().

В чем может быть проблема?

1 Ответ

0 голосов
/ 27 апреля 2020

В этом блоке

                    let ln = subwin(stdscr(), LINES(), 5, 0, 0);
                    wbkgd(ln, COLOR_PAIR(1));
                    refresh();

refresh перезаписывает результат из subwin. Кроме того, вы получите лучшие результаты, набрав ИЛИ с COLOR_PAIR пробелом (см. this ).

...