问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/28258030/gtk2hs-combo-box-with-text-and-pictures