我在已经在绘图区域绘制的图像上绘制一条简单的直线。
但在一台unix机器上,绘制的线条为黑色而不是红色。
以下是绘制直线的代码:
Gdk::Color red("red");
//winPtr is type of Gtk::Window*
Glib::RefPtr<Gdk::GC> gc = winPtr->get_window()->get_style()->get_white_gc();
gc->set_line_attributes ( 2, (Gdk::LineStyle)0, (Gdk::CapStyle)2, (Gdk::JoinStyle)1);
Glib::RefPtr<Gdk::Visual> some_visual;
some_visual = Gdk::Visual::get_best();
Glib::RefPtr<Gdk::Colormap> some_colormap = Gdk::Colormap::create(some_visual, true);
some_colormap->alloc_color (red, false, true);
gc->set_colormap(some_colormap);
gc->set_foreground(red);
imgDispArea->get_window()->draw_line ( gc, 100, 100, 200, 200);
PS: - “imgDispArea”类型为Gtk :: DrawingArea *
感谢任何帮助。
答案 0 :(得分:0)
我最好的猜测是,有问题的unix机器X11 rgb.txt文件是不同的。根据{{3}}文档:
字符串可以是大量标准名称之一(取自X11 rgb.txt文件)或......
我的建议是将颜色指定为&#34;#FF0000&#34;而不是&#34; red&#34;。