GTK:在 C 中设置网格的大小

GTK: Set the size of a grid in C

我想在全屏内放置一个网格 window。 标签、入口栏和按钮是附加在网格中的小部件。我想将网格的大小限制为 350、200 之类的大小,并将其放置在屏幕的中央。我尝试使用高度请求和宽度请求,但它们不起作用。 Builder.ui 看起来像这样:

<object id="grid" class="GtkGrid">
    <property name="visible">True</property>
    <property name="row-spacing">30</property>
    <property name="column-spacing">20</property>
    <property name="column-homogeneous">True</property>
    <property name="width-request">350</property>
    <property name="height-request">200</property>

但目前我的 window 看起来像这样: 有人可以帮忙吗?

我假设网格是 window 的直接子节点。在您的情况下,更改网格的大小不是您想要的。相反,您想更改 alignment of the grid in its parent from GTK_ALIGN_FILL to GTK_ALIGN_CENTER in both the horizontal and vertical directions.

在 Glade 中,您可以在网格的“常用”选项卡底部附近执行此操作。

如果这不起作用,请尝试将网格放在另一个容器中,例如 GtkBox,然后使 that 成为 window 的子对象,然后使网格的 hexpandvexpandTRUE(在 Glade 的同一个地方)。