1
我想使用gtk_render_line
而不是cairo_line_to
。更改线条粗细gtk_render_line
我已经更换了呼叫,但保留了cairo_set_line_width(cc,2)
,并且线条已更改为1px宽。
因为gtk_render_line使用样式上下文,我想我必须设置一个CSS属性来控制它。
控制gtk_render_line渲染线条粗细的属性名称是什么?
我想使用gtk_render_line
而不是cairo_line_to
。更改线条粗细gtk_render_line
我已经更换了呼叫,但保留了cairo_set_line_width(cc,2)
,并且线条已更改为1px宽。
因为gtk_render_line使用样式上下文,我想我必须设置一个CSS属性来控制它。
控制gtk_render_line渲染线条粗细的属性名称是什么?
根据实际图纸是由gtk_do_render_line
做的gtk_render_line
来源,其源看起来是这样的:
gtk_do_render_line (GtkStyleContext *context,
cairo_t *cr,
gdouble x0,
gdouble y0,
gdouble x1,
gdouble y1)
{
const GdkRGBA *color;
cairo_save (cr);
color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR));
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
cairo_set_line_width (cr, 1); /* <----------------- Relevant for this question */
cairo_move_to (cr, x0 + 0.5, y0 + 0.5);
cairo_line_to (cr, x1 + 0.5, y1 + 0.5);
gdk_cairo_set_source_rgba (cr, color);
cairo_stroke (cr);
cairo_restore (cr);
}
在这里我们可以看到该行的宽度不受任何CSS确定属性,它只是固定为宽度1
。所以没有任何属性或其他方式可以在Gtk中直接更改它...