Haskell OpenGL 中的对话框和按钮回调

Dialog and button callback in Haskell OpenGL

Graphics.UI.GLUT 有一个 拨号和按钮回调 。我找不到任何使用此回调的示例。我想拥有一个,因为目前我使用键盘和鼠标回调,这还不够,而且对用户不友好。

我试过做一个这样的回调。在我的程序中:

dial :: IORef GLdouble -> DialAndButtonBoxCallback
dial zoom index =
  case index of
    DialAndButtonBoxDial 1 1 -> zoom $~! (+1)
    _                        -> return ()

然后我希望在 OpenGL window 中看到一个按钮(按钮 1),当我按下该按钮(zoom $~! (+1) 缩放图形,我目前在键盘回调中使用它,没问题)。

然后在我的 main 文件中:

  zoom <- newIORef 0.0
  dialAndButtonBoxCallback $= Just (dial zoom)

代码编译。但是当我运行这个程序的时候,没有任何对话框出现。

如有任何帮助,我将不胜感激。也许我必须先创建一个对话框?我在文档中没有看到类似的内容。

拨号和按钮框不是对话框。它是一种特殊用途的硬件,如鼠标、键盘、操纵杆或方向盘。例如this company makes some.

Glut 不像 gtk 那样是 gui 库。它使您可以获取用户输入并在屏幕上绘制内容。如果你想使用 glut

,你需要弄清楚如何绘制所有用户界面组件