Высота кнопки LTK не настраивается - PullRequest
0 голосов
/ 27 ноября 2018

Я использую LTK для основных окон в Common Lisp.Я хочу создать квадратную кнопку, но оказывается, что высота не может быть изменена.Вот соответствующая часть кода:

(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 высота указана как конфигурируемая длякнопок.Что-то не так с установкой или это известная ошибка или что?

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Я думаю, что это отсутствует на стороне ltkС M-. в Slime я перехожу к определению кнопки:

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

На самом деле height нет, и оно не исходит от widget.

Я спросил оnodgui (ltk fork с синтаксическим сахаром и большим количеством мета-виджетов), потому что сопровождающий действительно хорош: https://notabug.org/cage/nodgui/issues/6

Его ответ:


nodgui поддерживает только виджет, который использует 'ttk'theme engine:

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, и в данном случае снимок экрана.

0 голосов
/ 27 ноября 2018

Настройка осуществляется с помощью функции configure в соответствии с гл.3.14 документации.

...