在Ruby curses中设置窗口的背景颜色

尝试将一个背景添加到curses窗口。 我有这两个属性

我发现了这两种方法:

bkgd(ch) 

 bkgdset(ch) 

但是,我无法实现它们:

 win1.new(10,10,10,10) win1.box('|','-') win1.bkg(COLOR_RED) 

这充满了钻石! 非常有趣的效果,但不是我想要的。 我想要一个红色背景。

颜色在我的终端完美运行。

已经有一段时间了,但也许我的例子仍然有用:

使用时对我来说也是一样的“钻石”

 window.bkgd(COLOR_RED) 

这似乎出现了,因为bkgd方法接受一个char并将其打印到窗口的所有空闲空间(参见旧文档 )。

但是,您可以使用具有所需背景颜色的颜色对,并在写入其他内容之前将其应用于所有屏幕位置。

这是我解决它的方式:

 require 'curses' init_screen start_color init_pair(COLOR_RED, COLOR_WHITE, COLOR_RED) window = Curses::Window.new(0, 0, 0, 0) window.attron(color_pair(COLOR_RED)) do lines.times do |line| window.setpos(line, 0) window << ' ' * cols end end