0

に関数を追加したいので、イベントbuttonNewWithLabelだけでなく、Enterキーが押されたときに反応します。onClicked方法がわかりませんが、それほど簡単ではないはずonClickedですか?

私のコードピースは次のようになります。

grt <- labelNew Nothing
str <- entryNew

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

そのような機能はありGtk2Hsますか?または...他に使用できるものはありますか?

4

2 に答える 2

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とGtk2Hについて学べば学ぶほど、私はそれが好きになります!:)

//よろしく

于 2012-10-20T11:49:01.450 に答える
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
于 2018-02-21T05:16:41.297 に答える