我正在尝试用 lisp 制作一个通用 lisp 的 GUI 应用程序ltk
,但有一件事我无法弄清楚。我知道我可以使用 设置ltk
小部件的选项configure
,但我无法找到读取值的方法。
例如,我创建了一个画布实例
(make-instance 'canvas :width 400 :height 400)
然后我想写一个在某些计算中使用宽度和高度的方法。我如何访问这些?
我正在尝试用 lisp 制作一个通用 lisp 的 GUI 应用程序ltk
,但有一件事我无法弄清楚。我知道我可以使用 设置ltk
小部件的选项configure
,但我无法找到读取值的方法。
例如,我创建了一个画布实例
(make-instance 'canvas :width 400 :height 400)
然后我想写一个在某些计算中使用宽度和高度的方法。我如何访问这些?
我在 ltk 用户列表中问过同样的问题并得到了答案。
简而言之,cget 功能是 configure 的对应功能
因此,要设置画布宽度(配置画布:witdh 值)并检索它(cget 画布:宽度)。
问候,
安德烈
(require :ltk)
(in-package :ltk-user)
(defparameter *can*
(make-instance 'canvas :width 400 :height 400))
实际上,宽度和高度存储在字符串中。不知道你以后能不能调整一下。也许在 ltk 邮件列表上询问。
#<CANVAS {1005A00C21}>
--------------------
Class: #<STANDARD-CLASS CANVAS>
--------------------
Group slots by inheritance [ ]
Sort slots alphabetically [X]
All Slots:
[ ] INIT-COMMAND = "canvas ~A -height 400 -width 400"
[ ] MASTER = NIL
[ ] NAME = "wc"
[ ] SCROLLREGION-X0 = NIL
[ ] SCROLLREGION-X1 = NIL
[ ] SCROLLREGION-Y0 = NIL
[ ] SCROLLREGION-Y1 = NIL
[ ] WIDGET-CLASS-NAME = "canvas"
[ ] WIDGET-PATH = NIL
[ ] XSCROLL = NIL
[ ] YSCROLL = NIL
[set value] [make unbound]