你是否厌倦了枯燥乏味的 GUI 编程? 想要用一种更优雅、更强大的方式构建你的用户界面?那么,McCLIM 就是你的不二之选!
McCLIM,全称为“Common Lisp Interface Manager CLIM II Specification”,是一个为 Common Lisp 打造的高层次用户界面管理系统工具包。它就像一个魔法师,能将你的 Lisp 代码直接转化为生动形象的界面,让你摆脱繁琐的代码,专注于创造更棒的用户体验。
McCLIM 的魅力:
- 直观易用: McCLIM 拥有强大的表现模型,它将对象的视觉表现与语义直接关联,让你轻松构建界面,就像用积木搭建城堡一样简单。
- 功能强大: McCLIM 提供了丰富的高层编程功能,包括格式化输出、图形绘制、窗口管理以及命令输入等。你可以用键盘、鼠标或文本命令来控制界面,就像指挥一支交响乐团一样灵活。
- 跨平台兼容: McCLIM 支持多种主流的 Common Lisp 实现,包括 Allegro CL、Clozure CL、CLISP、CMUCL、Embeddable CL、Scieneer CL Common-lisp、SBCL 和 LispWorks。它还支持 CLX 后端,这意味着你可以在任何支持 Xserver 的平台上运行 McCLIM 应用。
🚀 快速上手 McCLIM
想要体验 McCLIM 的魅力? 那就快来试试吧!
-
安装 McCLIM: McCLIM 在 Quicklisp 上唾手可得。确保你已经安装了支持的 Common Lisp 实现并正确配置了 Quicklisp。然后,在你的 REPL 中输入以下命令:
(ql:quickload "mcclim")
-
运行示例: 为了验证 McCLIM 是否正常工作,你可以加载示例系统并运行示例浏览器应用:
(ql:quickload "clim-examples") ; 加载示例系统 (clim-demo:demodemo) ; 运行示例浏览器应用
💡 一个简单的例子
-
运行
(ql:quickload "mcclim")
加载 McCLIM。 -
将以下代码保存到文件
example.lisp
中:(in-package :common-lisp-user) (defpackage "APP" (:use :clim :clim-lisp) (:export "APP-MAIN")) (in-package :app) ;;; 定义一个应用框架 (类似于传统 GUI 中的应用窗口) (define-application-frame superapp () () ;; :panes 部分描述了应用框架的不同部分。这个应用只有一个窗格。 (:panes (int :interactor :height 400 :width 600)) ;; :layouts 部分描述了窗格的布局方式。这个应用有一个名为 "default" 的布局,只有一个窗格。 (:layouts (default int))) ;;; 以下函数启动 "superapp" 应用框架的实例。 (defun app-main () (run-frame-top-level (make-application-frame 'superapp)))
-
加载文件并运行:
(app:app-main)
![example.lisp][]
📚 深入学习 McCLIM
想要更深入地了解 McCLIM? 你可以访问 McCLIM 的官方网站,阅读手册和文档,或者加入 McCLIM 的邮件列表和 IRC 频道,与其他开发者交流。
- McCLIM 手册: HTML 和 PDF 格式。
- CLIM 2 资源: CLiki 和 McCLIM 主页。
- 邮件列表: https://mailman.common-lisp.net/listinfo/mcclim-devel
- IRC 频道: #clim @ irc.libera.chat
- Wiki: https://codeberg.org/McCLIM/McCLIM/wiki
🗃️ McCLIM 的目录结构
-
Apps
- 示例应用程序。包括:-
Apps/Clouseau
- 一个强大的 Lisp 对象检查器。 -
Apps/Listener
- Andy Hefner 的 Lisp Listener。 -
Apps/Debugger
- Peter Mechleborg 的调试器(类似于 Slime 的调试器)。 -
Apps/Functional-Geometry
- Frank Buss 和 Rainer Joswig 的函数几何包,用于绘制“埃舍尔”瓷砖。 -
Apps/Scigraph
- BBN 的绘图包。
-
-
Documentation
- 包含可用的文档,例如Drei
和ESA
库的文档、CLIM 的入门指南、LATEX 源代码规范和 Texinfo 源代码手册。 -
Examples
-clim-examples
中示例的源代码。这些示例的质量和风格各不相同,其中许多示例来自 McCLIM 还处于不完整阶段的时期。 -
Extensions
- 包含对 CLIM 2 规范的扩展,例如字体、额外布局、图像等。大多数扩展在加载 McCLIM 时会自动加载。 -
Libraries
- 包含Drei
和ESA
库。有关详细信息,请参阅文档。
🌎 加入 McCLIM 社区
McCLIM 是一个充满活力的社区,我们欢迎来自世界各地的开发者加入。无论你是经验丰富的 Lisp 程序员,还是对 GUI 编程充满兴趣的新手,McCLIM 都能为你提供一个学习、交流和成长的平台。让我们一起用 McCLIM 打造更美好的用户界面,让世界变得更加美好!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于