我正在尝试编写一个包含GtkBox(水平)的应用程序,我根据不同的条件添加动态数量的按钮(带标签)。现在 我想阻止GtkBox增长超过(例如)600px。按钮标签可以进行椭圆化。
所以我的问题是,有没有解决这个问题的常用方法?如果没有,我想我将不得不创建一个新的容器类,它将观察它的大小。
我正在使用GT API的C API(gtk+-3.0
)
答案 0 :(得分:3)
没有简单的方法来限制小部件的大小,至少就我所知。您可以做的是附加到size-allocate
信号,并在收到时致电set_size_request
。
由于大小请求只是请求,而不是命令,因此根据情况,您可能无法按照自己的意愿缩小小部件,但这种情况应该很少见。
答案 1 :(得分:3)
当前版本的GTK无法直接实现。 max-width
CSS属性可能会在将来的版本中实现,因为有很多请求。
你要做的是确实创建一个新的容器子类。您可以继承GtkBin
以保持简单,并且在size_allocate
处理程序中,只需将宽度限制为最大值,然后再将其传递给子窗口小部件。
您还可以试用Emeus,即GTK的约束布局库,类似于iOS的实现方式。