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

时间:2013-10-17 22:09:58

标签: ruby curses

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

我找到了这两种方法:

bkgd(ch)

bkgdset(ch)

但是,我无法实现它们:

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

这可以用一堆钻石填充win1!非常有趣的效果,但不是我想要的。我想要一个红色背景。

色彩在我的终端中完美运作。

1 个答案:

答案 0 :(得分:0)

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

它是相同的"钻石"对我来说使用

window.bkgd(COLOR_RED)

这似乎出现了,因为bkgd方法接受 char 并将其打印到窗口的所有空闲空间(请参阅old doc)。

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

以下是我解决它的方法:

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