Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Combobox glade gtk2hs中的组合框_Combobox_Glade_Gtk2hs - Fatal编程技术网

Combobox glade gtk2hs中的组合框

Combobox glade gtk2hs中的组合框,combobox,glade,gtk2hs,Combobox,Glade,Gtk2hs,我使用glade创建了窗口、组合框和按钮,代码如下: module Main where import Graphics.UI.Gtk import Graphics.UI.Gtk.Glade main = do initGUI Just xml <- xmlNew "Tp.glade" window <- xmlGetWidget xml castToWindow "window1" button <- xmlGetWidget xml ca

我使用glade创建了窗口、组合框和按钮,代码如下:

module Main where
import Graphics.UI.Gtk
import Graphics.UI.Gtk.Glade

main = do
    initGUI
    Just xml <- xmlNew "Tp.glade"
    window <- xmlGetWidget xml castToWindow "window1"
    button <- xmlGetWidget xml castToButton "button1"

    comboBox  <- xmlGetWidget xml castToComboBox "combobox1"

    onClicked button $ do
         putStrLn $ "Apply button selected " 
         selected <- comboBoxGetActiveText comboBox

         print selected

   onDestroy window mainQuit
   widgetShowAll window
   mainGUI
如果我从组合框中选择一个选项并单击操作按钮,它将显示以下错误消息 UI.exe:gtk\Graphics\UI\G处do表达式中的用户错误模式匹配失败 tk\MenuComboToolbar\ComboBox.chs.pp:244:2-13


当我从组合框中选择一个选项时,是否需要为要执行的操作提供单独的功能?请帮帮我

如Gtk2Hs文档中所述,comboBoxGetActiveText在comboBox中返回当前活动的字符串,如果未选择任何字符串,则不返回任何内容。请注意,此函数只能用于使用comboBoxNewText构造的组合框

如果要使用此功能,请尝试以下选项之一:

不要在Glade文件中将combobox的TreeModel设置为ListStore,并在line combobox之后添加line comboBoxSetModelText combobox如果使用comboBoxGetActive函数,它将返回一个Int,然后可以映射到combobox中的每个元素。这可以在Graphics.UI.Gtk.MenuComboToolbar.ComboBox API中找到