使用ncurses实现固定的页眉和页脚?
我第一次尝试使用ncurses(通过UniCurses在Python中)。我想设计一个控制台应用程序,里面有固定的头部和底部,但文档上对我该怎么做并没有说明。我应该使用窗口吗?还是面板?或者其他什么?我已经弄明白了怎么给一段文字设置前景色和背景色,但不知道怎么把这个效果扩展到整个控制台窗口的长度。为了让你们更清楚我想做的事情,可以看看这些cmus的截图:
http://cmus.sourceforge.net/#home
我想要的效果就是顶部的蓝色头部和底部的蓝白色底部。谢谢!
2 个回答
1
使用Python的Curses模块
初始化curses并设置一个颜色供使用
from curses import *
stdscr = initscr()
start_color()
init_pair(1,COLOR_RED,COLOR_WHITE)
获取屏幕的宽度和高度
max_y, max_x = stdscr.getmaxyx()
创建一个子窗口的标题,宽度要和终端的最大宽度一致
header = stdscr.subwin(1, max_x, 0, 0)
给标题的背景和里面的文字上色
header.bkgd(color_pair(1))
你想让它显示什么内容
header.addstr('Header Text')
展示所有内容
header.refresh()
2
好的,我搞定了。子窗口来帮忙了:
init_pair(1, COLOR_BLACK, COLOR_WHITE)
header = subwin(stdscr, 1, 80, 0, 0)
wattron(header, COLOR_PAIR(1))
waddstr(header, "Title")
wbkgd(header, COLOR_PAIR(1))
wattroff(header, COLOR_PAIR(1))
可能还有更好的办法,但这也是一个解决方案。