#include #include #include Glib::ustring color_to_string(Gdk::Color color) { guchar red = guchar(color.get_red_p() * 255); guchar green = guchar(color.get_green_p() * 255); guchar blue = guchar(color.get_blue_p() * 255); char * red_str = new char[5]; char * green_str = new char[5]; char * blue_str = new char[5]; snprintf(red_str, 5, "%#x", red); snprintf(green_str, 5, "%#x", green); snprintf(blue_str, 5, "%#x", blue); Glib::ustring string = '#' + Glib::ustring(Glib::ustring(red_str), 2) + Glib::ustring(Glib::ustring(green_str), 2) + Glib::ustring(Glib::ustring(blue_str), 2); delete[] red_str; delete[] green_str; delete[] blue_str; return string; } int main(void) { std::cout << color_to_string(Gdk::Color("#4682B4")) << std::endl; return 0; }