gtk-css shade
函数的用途是什么?遗憾的是,该功能没有记录在案。它会影响颜色属性的饱和度、灰度、不透明度或色调吗?
shade(hex:string, value:double)
示例
body {
background: shade(#000, 0.15);
}
h1 {
color: shade(#ddd, 22.6875);
}
它似乎用一些自定义权重将十六进制RGB的亮度乘以给定值。
gtk-widgets.css
button {
background-color: shade(rgb(160,120,100), 0.5);
}
cssshade.cpp
#include <gtkmm.h>
#include <iostream>
#include <string>
int main(int argc, char* argv[])
{
auto app = Gtk::Application::create();;
std::string gladeFile = argv[1];
auto gladeBuilder = Gtk::Builder::create();
gladeBuilder->add_from_file(gladeFile);
app->signal_startup().connect([&]
{
for(auto& object: gladeBuilder->get_objects())
{
auto widget = Glib::RefPtr<Gtk::Widget>::cast_dynamic(object);
if(!widget)
continue;
auto style = widget->get_style_context();
auto color = style->get_background_color();
std::cout<<widget->get_name()<<" "<<color.to_string()<<std::endl;
}
});
app->run();
return 0;
}
输出:
gtkmm__GtkButton rgb(73,62,57)
这就是为什么所有通道都更改为不同的值。