我正在尝试编写一个包含 GtkBox(水平)的应用程序,其中根据各种条件添加动态数量的按钮(带有标签)。现在 我想防止 GtkBox 增长超过(例如)600px。按钮标签可以省略。
所以我的问题是,有没有通用的方法来解决这个问题?如果没有,我想我将不得不创建一个新的容器类来观察其大小。
我正在使用 GTK 的 C API (
gtk+-3.0
)
当前版本的 GTK 无法直接实现这一点。
max-width
CSS 属性可能会在未来版本中实现,因为对此有很多要求。
您要做的确实是创建一个新的容器子类。您可能可以继承
GtkBin
以使事情变得简单,并且在您的 size_allocate
处理程序中只需将宽度限制为最大值,然后再将其传递给子窗口小部件。
您还可以尝试Emeus,GTK 的约束布局库,类似于 iOS 的做法。
没有简单的方法来限制小部件的大小,至少据我所知。您可以做的就是附加到
Gtk.Widget::size-allocate
信号并在收到时拨打 Gtk.Widget.set_size_request
。
由于尺寸请求只是请求,而不是命令,根据具体情况,您可能无法将小部件缩小到您想要的程度,但这应该很少见。