Gtk:如何防止小部件在 table 视图内扩展超出 Width/Height 请求

Gtk: How to prevent widget expanding beyond Width/Height request inside table view

我制作了一个小部件,它本质上是一个图标。此图标小部件有 Width/Height 150 像素的请求。我 想要 将这些图标(以编程方式)放置在 Table 视图中,如下所示:

相反,我得到的是:

如何强制 table 视图不展开每个图标小部件?我创建图标小部件并将它们添加到 table 的代码如下:

    iconTable.Add (new MatchDayManager.SceneIconCellWidget (new MDMScene ("A Final Scene Name")));
    iconTable.NRows = noOfRows;
    iconTable.SetSizeRequest (-1, cellHeight * noOfRows);
    iconTable.CheckResize();
    ShowAll ();

明白了 - 我使用的是 iconTable.Add(...) 函数,而实际上,您应该使用 iconTable.Attach(...) 函数。

对于后者,您可以使用 leftAttach, rightAttach, topAttach and bottomAttach 参数指定项目应位于的单元格。将这些视为一个单元格索引,描述将小部件从哪个单元格放置到哪个单元格。

If I wanted a widget to appear in the lower right of a 2x2 grid, I would use 1,2,1,2.

...这意味着小部件将位于第 1 行和第 2 行之间,以及第 1 列和第 2 列之间。这样做是为了让小部件可以跨越多个单元格,例如通过使用 1, 4, 1, 2.

我的代码如下:

iconTable.Attach(new Gtk.Widget ... , 0, 1,  0, 1);