GtkBox隐含儿童之间的差距

时间:2017-07-05 08:57:46

标签: gtk3 margins

是否可以删除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 x 22。

呈现结果

Result

看起来这不是主题问题,因为所有主题的行为都相同。

2 个答案:

答案 0 :(得分:0)

我尝试过相同的Gtk版本:

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

它可以在没有任何边框的情况下工作:

Screenshot

由于水平对齐设置为中心,图像居中。将窗口大小调整为最小尺寸:

Screenshot

使用的图像是原始图像(22x22像素):

Screenshot

<强>结论

似乎您正在创建一个自定义小部件,也许您缺少某些内容(需要更多详细信息)。从常规小部件(GtkBox包装在GtkBox上,用glade测试)它似乎工作正常。

答案 1 :(得分:0)

我找到了解决方案。我的GtkBox有一个非零间距。