在 gtkmm 中将图像添加到网格的正确方法是什么?
What is the correct way of adding Image to Grid in 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);
}
}
问题是它生成了一些非常奇怪的东西:
目标是分别添加相同的图像。
Gtk::Grid::attach()
的默认描述令人困惑。最后两个属性被标记为 "width" 和 "height" 并且可以预期它表示添加的 Widget 的像素尺寸。然而,这根本不是这些参数的意思。
实际上它们的意思更接近 "span"。将这些值代入 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);
}
}
有 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);
}
}
问题是它生成了一些非常奇怪的东西:
目标是分别添加相同的图像。
Gtk::Grid::attach()
的默认描述令人困惑。最后两个属性被标记为 "width" 和 "height" 并且可以预期它表示添加的 Widget 的像素尺寸。然而,这根本不是这些参数的意思。
实际上它们的意思更接近 "span"。将这些值代入 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);
}
}