Высота кнопки LTK не настраивается
Я использую LTK для основных окон в Common Lisp. Я хочу создать квадратную кнопку, но оказывается, что высота не может быть изменена. Вот соответствующая часть кода:
(let ((tile (make-instance 'button
:width 20
:height 20))))
Я получаю сообщение об ошибке:
Неверный аргумент инициализации::HEIGHT в вызове для класса #. См. Также: Стандарт ANSI, раздел 7.1.2 [Условие типа INITARG-ERROR].
В документации LTK высота указана как настраиваемая для кнопок. Что-то не так с установкой или это известная ошибка или что?
1 ответ
Настройка осуществляется через configure
функционировать в соответствии с гл. 3.14 документации.
Я думаю, что это отсутствует на стороне ltk. С M-.
в слизи я иду к определению кнопки:
(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':
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, и в данном случае снимок экрана.