gtk2Hs : Combo box with text and pictures

2019-08-10 14:40发布

The basic ComboBox provided by Gtk can only handle a String or a Pixbuf

But I wanted a text and a picture nearby on the same row of selection.

I looked for a while how to obtain the result bellow using Haskell and Gtk2Hs.

enter image description here

1条回答
欢心
2楼-- · 2019-08-10 14:57

Here is the code to obtain the expected result :

pic1 <- pixbufNewFromFile "Picture_1.png"
pic2 <- pixbufNewFromFile "Picture_2.png"
pic3 <- pixbufNewFromFile "Picture_3.png"

let lstsecrep = [
                  ("Picture 1",pic1)
                , ("Picture 2",pic2)
                , ("Picture 3",pic3)
                ]

lststorerep <- listStoreNew lstsecrep 

customStoreSetColumn lststorerep (makeColumnIdString 0) fst
customStoreSetColumn lststorerep (makeColumnIdPixbuf 1) snd

combo <- comboBoxNewWithModel lststorerep

rendertxt <- cellRendererTextNew
renderpic <- cellRendererPixbufNew

cellLayoutPackStart  combo rendertxt False
cellLayoutPackStart  combo renderpic True
cellLayoutAddColumnAttribute combo rendertxt cellText $ makeColumnIdString 0
cellLayoutAddColumnAttribute combo renderpic cellPixbuf $ makeColumnIdPixbuf 1

Best regards.

查看更多
登录 后发表回答