在gtkmm中将图像添加到网格的正确方法是什么?

时间:2015-07-10 14:32:41

标签: c++ gtkmm

拥有Gtk::Grid并尝试执行以下操作:

Gtk::Image *im;
for(int i=0; i<10; ++i)
{
    for(int j=0; j<10; ++j)
    {
        im = Gtk::manage(new Gtk::Image());
        im->set("test.jpeg");
        grid->attach(*im, i, j, 40, 40);
    }
}

问题在于它会产生一些非常奇怪的东西:

Strange result

目标是分别添加相同的图像。

1 个答案:

答案 0 :(得分:2)

Gtk::Grid::attach()的默认说明令人困惑。最后两个属性被标记为“宽度”和“高度”,并且可以预期它意味着添加的Widget的像素尺寸。但是,这并不是这些参数的意思。

实际上,它们意味着更接近“跨度”的东西。将这些值代入1会产生正确的结果。

Gtk::Image *im;
for(int i=0; i<10; ++i)
{
    for(int j=0; j<10; ++j)
    {
        im = Gtk::manage(new Gtk::Image());
        im->set("test.jpeg");
        grid->attach(*im, i, j, 1, 1);
    }
}