gpt4 book ai didi

rust - 使用尺寸大于屏幕的 newpad 时出现问题

转载 作者:行者123 更新时间:2023-11-29 08:08:44 28 4
gpt4 key购买 nike

我正在尝试滚动一些比屏幕大的文本。

文档说 newpad 不受屏幕大小的限制,但使用大于终端可用列或行的值启动它时无法打印任何内容:

newpad(LINES + 1, COLS); // fails
newpad(LINES, COLS); // works

引用完整代码:

extern crate ncurses;
use ncurses::*;

fn main() {
initscr();
start_color();
use_default_colors();
cbreak();
noecho();
curs_set(CURSOR_VISIBILITY::CURSOR_INVISIBLE);

let pad = newpad(1000, COLS);

refresh();
let mut x = 0;
while x < 1000 {
x += 1;
wprintw(pad, &format!("Line number {}\n", x));
}
prefresh(pad, 0, 0, 0, 0, LINES, COLS);
getch();
endwin();
}

最佳答案

行为有点奇怪。

如果行数或行数大于视口(viewport),则最后两个 prefresh 参数必须最多为 LINES - 1COLS - 1 分别为:

prefresh(pad, 0, 0, 0, 0, LINES - 1, COLS - 1);

如果小于,则无需减去 1,因为代码将按预期工作。

关于rust - 使用尺寸大于屏幕的 newpad 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39425731/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com