如何关注小部件?

时间:2016-01-09 01:50:51

标签: haskell wxhaskell

当我启动我的应用程序时,我想将焦点设置在某个按钮上。目前,我需要点击tab一次以关注按钮。

wxwidgets文件中提到的SetFocus方法(link)似乎在wxhaskell中无法使用?

然后我找到MoveBeforeInTabOrderlink),但我再次找不到wxhaskell

wxhaskell mentioned的维护者,它在2009年是一个“相当完整的GUI绑定”,所以我只是在这里遗漏了一些东西还是运气不好?

这是我的最小例子:

module Main where

import Graphics.UI.WX
import Graphics.UI.WXCore

main :: IO ()
main = start hello

hello :: IO ()
hello = do
  f <- frame []
  test <- button f [ text := "button" ]
  set f [ layout := widget test ]

1 个答案:

答案 0 :(得分:1)

wx库有focusOn function,可让您专注于控件。

这是wxcore's windowSetFocus的转口。该类型有点误导:它说Window a,但它适用于按钮,因为they are windows too

以下作品(注意我只添加了最后一行):

module Main where

import Graphics.UI.WX
import Graphics.UI.WXCore

main :: IO ()
main = start hello

hello :: IO ()
hello = do
  f <- frame []
  test <- button f [ text := "button" ]
  set f [ layout := widget test ]
  focusOn test                          -- Here!