Gtk:如何防止窗口小部件扩展到表视图中的宽度/高度请求之外

时间:2016-01-12 09:55:56

标签: widget gtk expand

我制作了一个基本上是Icon的小部件。此图标小部件的宽度/高度请求为150像素。我想要将这些图标(以编程方式)放在表格视图中,如下所示:

Desired alignment and sizing of cells in the table view

相反,我得到的是:

The resulting output

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

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

1 个答案:

答案 0 :(得分:1)

想出来 - 我正在使用iconTable.Add(...)函数,实际上,你应该使用iconTable.Attach(...)函数。

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

  

如果我想让一个小部件出现在2x2网格的右下角,我   会使用1,2,1,2。

...这意味着小部件将在第1行和第2行之间以及第1列和第2列之间进行。它是这样完成的,这样您就可以允许小部件跨越多个单元格,例如通过使用1,4,1,2。

我的代码如下:

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