Gtkmm: замена цвета при рисовании линии в области рисования

Я рисую простую прямую линию на изображении, которое уже нарисовано в области рисования.

Но на одной 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*

Любая помощь приветствуется.


person Sonu Maddeshia    schedule 20.01.2016    source источник


Ответы (1)


Мое лучшее предположение здесь заключается в том, что проблемная машина Unix с файлом X11 rgb.txt отличается. Согласно документации GdkColor:

Строка может быть либо одним из большого набора стандартных имен (взятых из файла X11 rgb.txt), либо...

Мое предложение состояло бы в том, чтобы указать цвет как «# FF0000», а не как «красный».

person Blake    schedule 01.04.2016