2017-07-05 53 views
0

是否可以刪除GtkBox內兩個小部件之間的所有邊距?GtkBox兒童之間的隱含邊距

嘗試:設置一切爲零

結果:仍然2px的有效保證金

GTK +版本:3.18.9

控件屬性:

Widget properties 1

Widget properties 2

繪圖代碼:

auto w_out=static_cast<double>(gtk_widget_get_allocated_width(widget)); 
auto h_out=static_cast<double>(gtk_widget_get_allocated_height(widget)); 

cairo_set_source_rgba(cr,self->m_background.red,self->m_background.green 
    ,self->m_background.blue,self->m_background.alpha); 
cairo_rectangle(cr,0,0,w_out,h_out); 
cairo_fill(cr); 

auto img=self->r_img; 
if(img!=nullptr) 
    { 
    //... 
    } 

實際尺寸爲22×22按預期方式。

渲染結果

Result

看來,這不是一個主題化的問題,因爲所有的主題行爲相同。

回答

0

我找到了解決方案。我有一個非零的GtkBox間距。

0

我試過在同一個基於GTK版:

$ rpm -q gtk3-devel 
gtk3-devel-3.18.9-1.fc23.x86_64 

和它的工作沒有任何邊框可以看出:由於水平對齊

Screenshot

的圖像居中設爲中心。調整窗口的大小,以最小的尺寸:

Screenshot

圖像使用從原來的(22×22像素)農作物:

Screenshot

結論

看來你正在創建一個自定義小部件,也許有一些你錯過了(需要更多的細節)。從常規小部件(GtkImages包裝在GtkBox上,用空地測試),它似乎工作正常。