Gtk 3.10忽略gtk_box_set_child_packing

时间:2016-05-03 14:12:58

标签: haskell gtk

如标题所示,我在使用Gtk 3.10(在Ubuntu 14.04上)的hbox / vbox中指定子包装属性时遇到问题,其中相同的代码与Gtk 3.20(在Archlinux上)一起使用。重现错误的最小代码如下(原谅我的Haskell):

import Graphics.Widget -- my graphics library, which uses the FFI to import Gtk functions

main = runApplication $ do
  a <- (subwidget.text) "aaa"; b <- (subwidget.text) "bbb"
  setDynamic a (packing.expands) Fitting
  c <- box2 Horizontal a b
  window "Main window" c <| do visible =- True

此代码编译并运行两个Gtk版本,但Gtk 3.10版本似乎忽略了第二行并显示两个子窗口小部件同等扩展到hbox。 Gtk 3.20版本可以实现预期效果,并显示第一个小部件打包到左侧,第二个小部件占用剩余空间。除此之外,Gtk版本没有报告任何错误。

你能帮我理解改变了什么吗?我已经阅读了这些文档,但我还没有找到合理的解释。

1 个答案:

答案 0 :(得分:1)

没关系,我的Haskell代码调用了gtk_hbox_new,明确表示在文档中已弃用。我切换到gtk_box_new,现在子窗口小部件正确布局了两个Gtk版本。