2016-07-25 99 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中直接更改它...

相關問題