GtkContainer/GtkWidget最大宽度

问题描述 投票:0回答:2

我正在尝试编写一个包含 GtkBox(水平)的应用程序,其中根据各种条件添加动态数量的按钮(带有标签)。现在 我想防止 GtkBox 增长超过(例如)600px。按钮标签可以省略。

所以我的问题是,有没有通用的方法来解决这个问题?如果没有,我想我将不得不创建一个新的容器类来观察其大小。

我正在使用 GTK 的 C API (

gtk+-3.0
)

c gtk gtk3
2个回答
8
投票

当前版本的 GTK 无法直接实现这一点。

max-width
CSS 属性可能会在未来版本中实现,因为对此有很多要求。

您要做的确实是创建一个新的容器子类。您可能可以继承

GtkBin
以使事情变得简单,并且在您的
size_allocate
处理程序中只需将宽度限制为最大值,然后再将其传递给子窗口小部件。

您还可以尝试Emeus,GTK 的约束布局库,类似于 iOS 的做法。


3
投票

没有简单的方法来限制小部件的大小,至少据我所知。您可以做的就是附加到

Gtk.Widget::size-allocate
信号并在收到时拨打
Gtk.Widget.set_size_request

由于尺寸请求只是请求,而不是命令,根据具体情况,您可能无法将小部件缩小到您想要的程度,但这应该很少见。

© www.soinside.com 2019 - 2024. All rights reserved.