2016-07-25 205 views
1

我想使用gtk_render_line而不是cairo_line_to更改线条粗细gtk_render_line

我已经更换了呼叫,但保留了cairo_set_line_width(cc,2),并且线条已更改为1px宽。

因为gtk_render_line使用样式上下文,我想我必须设置一个CSS属性来控制它。

控制gtk_render_line渲染线条粗细的属性名称是什么?

回答

1

根据实际图纸是由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中直接更改它...

相关问题