C语言 如何把一个小部件在网格的某个单元格?



每当我尝试将小部件附加到网格时,无论我指定哪个坐标,它都只附加到0,0坐标。

我的意思是gtk_grid_attach (GTK_GRID (grid), label1, 0, 0, 1, 1)gtk_grid_attach (GTK_GRID (grid), label1, 1, 1, 1, 1)返回相同的结果-标签在窗口的左上角。

如果我将一个小部件放置在坐标0,0处,那么我不能将第二个小部件放置在第一个小部件的边缘以外:gtk_grid_attach (GTK_GRID (grid), label2, 1, 1, 1, 1)gtk_grid_attach (GTK_GRID grid, label2, 2, 1, 1, 1)两者都将第二个标签紧挨着第一个标签。GTK_GRID_INSERT_COLUMN不改变任何东西

如果你设置了gtk_grid_attach (GTK_GRID (grid), label1, 1, 1, 1, 1),那么这个小部件肯定是在(1,1)处附加的,但如果网格中没有其他小部件,那么第0行将为零高度,第0列将为零宽度,所以从视觉上看,效果就像你在(0,0)处附加了它一样。

你必须把小部件放在第0列或第0行,这样它们的宽度或高度就不再是零了。

或者,如果它适合你正在尝试构建的UI,将网格设置为均匀的,以便所有单元格都是相同的大小。

或者,如果你只是想确保标签不靠近网格的边缘,不要使用(1,1)。相反,将其附加在(0,0)处,并更改标签的margin-start/margin-top属性,或者更改网格的border-width属性。

最新更新