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 的子对象,然后使网格的 hexpand
和 vexpand
都 TRUE
(在 Glade 的同一个地方)。
我想在全屏内放置一个网格 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 的子对象,然后使网格的 hexpand
和 vexpand
都 TRUE
(在 Glade 的同一个地方)。