2012-10-19 142 views
0

我想給我的buttonNewWithLabel添加一個函數,所以它對按下的輸入鍵作出反應,而不僅僅是onClicked事件。我無法找到如何,但應該沒有像onClicked那麼容易?需要另一個事件處理程序(按下按鈕)Gtk2Hs

我的代碼peice的是這樣的:

grt <- labelNew Nothing 
str <- entryNew 

but <- buttonNewWithLabel "Action" 
but `onClicked` function1 str grt 
but `onEnterPushed`function1 str grt <--- Something like this ? 

是否有Gtk2Hs這樣的功能?或者...還有什麼我可以使用的?

+2

按鈕默認處理回車鍵時,他們的重點。因此,您可能想要了解如何使用gtk完成以下兩件事之一(然後將其轉換爲gtk2hs):1.默認關注特定的窗口小部件2.如果您有任何其他窗口小部件,則添加處理程序想要一個輸入點擊該按鈕,即使它沒有被聚焦。 –

+0

感謝您的意見!,我會閱讀重點小工具。 //問候 – user1501127

回答

1
import Graphics.UI.Gtk 
import Control.Monad.IO.Class (liftIO) 

main :: IO() 
main = do 
    initGUI 
    window <- windowNew 
    button1 <- buttonNewWithLabel "button1" 
    containerAdd window button1 
    button1 `on` buttonPressEvent $ do 
     liftIO $ putStrLn "button1 got clicked" 
     return True 
    widgetShowAll window 
    mainGUI 
1

我一直在尋找旁邊以及尋找小部件焦點,因爲它是如何工作的。

一個答案是添加一個代碼的標籤,告訴它激活的條目。

我得到的工作是:

--Creating label & an entry 
grt <- labelNew Nothing 
str <- entryNew 
str `onEntryActivate` function1 str grt <-- This works like a charm! 

--Create button 
but <- buttonNewWithLabel "Action" 
but `onClicked` function1 str grt 

,我越瞭解Haskell的& Gtk2Hs我越喜歡它! :)

//問候