LTK按钮的高度不可配置

时间:2018-11-27 16:52:45

标签: common-lisp ltk

我在Common Lisp中将LTK用于基本窗口。我想创建一个方形按钮,但事实证明高度不能更改。这是代码的相关部分:

(let ((tile (make-instance 'button
                           :width 20
                           :height 20))))

我遇到错误:

Invalid initialization argument:
  :HEIGHT
in call for class #<STANDARD-CLASS LTK:BUTTON>.
See also:
  The ANSI Standard, Section 7.1.2
  [Condition of type INITARG-ERROR]

LTK documentation中,高度被列为可配置的按钮。安装有问题吗?或者是已知错误或什么?

2 个答案:

答案 0 :(得分:3)

根据ch通过configure函数进行配置。文档的3.14。

答案 1 :(得分:1)

我认为它在ltk方面不见了。在史莱姆中使用M-.,进入按钮的定义:

(defargs button (widget)
  command
  compound
  default
  image
  state
  textvariable
  underline
  width)

确实没有height,它也不来自widget

我询问了nodgui(带有语法糖和更多元小部件的ltk分支),因为维护者确实很棒:https://notabug.org/cage/nodgui/issues/6

他的答案:


nodgui仅支持使用'ttk'主题引擎的小部件:

https://www.tcl.tk/man/tcl8.6/TkCmd/ttk_intro.htm

ttk :: button的文档:

https://www.tcl.tk/man/tcl8.6/TkCmd/ttk_button.htm

没有显示高度参数(如果我输入错误,请纠正我)

(您是否有机会查看https://www.tcl.tk/man/tcl8.6/TkCmd/button.htm?这是该小部件的非ttk版本,不支持)

可能您可以使用frame和sticky属性来修改按钮的几何形状(从未尝试过),而且我不知道以像素为单位指定按钮大小的方法。

希望这会有所帮助! :)

ps:可能很重要的一点是要指出LTK文档在小部件中已过时。


要考虑的其他信息:https://mailman.common-lisp.net/pipermail/ltk-user/2016-June/000625.html

  

Tcl / Tk最高8.4   包括允许设置按钮的字体。从8.5开始   ttk小部件集,在某个时候它成为ltk的默认值。 TTK   小部件集使用主题引擎来确定许多渲染   小部件的参数以实现“本机”外观。这意味着很多   小部件的旧选项已删除。您可以找到文档   此处的小部件:https://www.tcl.tk/man/tcl8.6/TkCmd/ttk_button.htm

     

如果将:tk84推入功能,则会获得旧样式的小部件,否则   您当然可以创建/修改ttk主题,这应该给您   也可以配置字体。有了这样的错误报告,它也会   如果您包含有关操作系统的信息,将对您有所帮助   问题显示,您正在使用Ltk的Lisp,在这种情况下,屏幕   射击。