在 Clojure 中执行 GUI 的最佳方法是什么? [英] What is the best way to do GUIs in Clojure?

查看:22
本文介绍了在 Clojure 中执行 GUI 的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Clojure 中制作 GUI 的最佳方法是什么?

What is the best way to do GUIs in Clojure?

是否有一些功能性 SwingSWT 包装器?或者与 JavaFX 声明式 GUI 描述的一些集成,可以很容易地包装到 s-expressions 使用一些宏观?

Is there an example of some functional Swing or SWT wrapper? Or some integration with JavaFX declarative GUI description which could be easily wrapped to s-expressions using some macrology?

有教程吗?

推荐答案

我会虚心推荐 Seesaw.

这是一个基于 REPL 的教程,假设您没有 Java 或 Swing 知识.

Here's a REPL-based tutorial that assumes no Java or Swing knowledge.

跷跷板很像@tomjen 的建议.这是你好,世界":

Seesaw's a lot like what @tomjen suggests. Here's "Hello, World":

(use 'seesaw.core)

(-> (frame :title "Hello"
       :content "Hello, Seesaw"
       :on-close :exit)
  pack!
  show!)

这里是@Abhijith 和@dsm 的例子,按字面翻译:

and here's @Abhijith and @dsm's example, translated pretty literally:

(ns seesaw-test.core
  (:use seesaw.core))

(defn handler
  [event]
  (alert event
    (str "<html>Hello from <b>Clojure</b>. Button "
      (.getActionCommand event) " clicked.")))

(-> (frame :title "Hello Swing" :on-close :exit
           :content (button :text "Click Me" :listen [:action handler]))
  pack!
  show!)

这篇关于在 Clojure 中执行 GUI 的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆