我试图使用gtk3的流量框的bindModel功能,这样我就可以给它一个模型并创建子窗口小部件,排序和过滤将为我完成
我不清楚将数据存储和检索到此模型的过程有两种方式:
data Cookie = Cookie [Text] Text
。在GListStore' listStoreAppend :: (ObjectK b) => ListStore -> b -> IO ()
中,b是什么?如何将Cookie
转换为ObjectK
?在original C code中,此参数是gpointer ... Ptr ()
转换回Cookie
?流水箱' bindModel的类型为flowBoxBindModel :: (HasCallStack, IsListModel b) => FlowBox -> Maybe b -> (Ptr () -> IO Widget) -> IO ()
。要创建子窗口小部件,我需要将它从ListStore获取的Ptr ()
转换回Cookie
,但是如何?所以,回顾一下:如果有人能帮我说明如何(1)我将Haskell数据放在C定义的ListStore中; (2)我如何将指针转换回原始数据形式?
提前致谢。
注意:我简化了一些类型,以强调不清楚的部分。