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

标签 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

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

最佳答案

Gtk::Grid::attach() 的默认描述令人困惑。最后两个属性被标记为“width”和“height”,可以预期它表示添加的 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);
    }
}

关于c++ - 在 gtkmm 中将图像添加到网格的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31343445/

相关文章:

c++ - 合并数组的程序打印 0 而不是实际的合并数组

c++ - 如何在非透明窗口中具有透明小部件?

c++ - gtk(mm) 3 按钮背景颜色变化

c++ - 如何在 C++ 中设置文件权限(跨平台)?

c++ - MySQL 连接器 8.0 C++ 错误 : "CDK: Failed string conversion"

c++ - Glade/gtkmm TreeView

c++ - 如何在没有 MSYS 的情况下将 gtkmm 与 MinGW (g++) 一起使用?

c++ - GTKMM 错误 : Void Value Not Ignored As it Ought to Be

c++ - main() 会捕获线程抛出的异常吗?

c++ - 这个静态类字段在创建之前就被使用了吗?