在 ltk 中设置字体
Setting font in ltk
在 LTK 中,我想在 canvas 上写一个字符串并用一个矩形包围它。我可以将它设置为以给定宽度(以像素为单位)环绕,但由于字距调整,我无法预测字符串将占用多少行,因此无法预测矩形应该有多高。我想使用等宽字体,以便我可以预测程序内的高度,但字体保持不变。如果我使用“FreeMono 32”而不是“FreeMono”,它会相应地更改大小,但会忽略字体名称。正如在 LibreOffice Writer 中检查的那样,我确实可以使用 FreeMono 字体。
我试过的代码:
(defun main ()
(ltk:with-ltk ()
(let ((c (make-instance 'ltk:canvas :width 500 :height 500)))
(ltk:pack c)
(let ((txt (ltk:create-text c 100 100 "lorem ipsum dolor sit amet consectetur adipiscing elit")))
(ltk:itemconfigure c txt :width 100)
(ltk:itemconfigure c txt :font "FreeMono")
(ltk:itemconfigure c txt :justify "center")))))
我们可以使用(遗憾的是未记录)函数打印可用字体 font-families
:
(ltk:with-ltk ()
(print (ltk:font-families)))
LTK 无法识别 FreeMono 字体。合适的等宽字体是 NotoSans。新字体可能通过font-create
或font-configure
添加,但缺乏tcl/tk知识,我无法确认或解释。
在 LTK 中,我想在 canvas 上写一个字符串并用一个矩形包围它。我可以将它设置为以给定宽度(以像素为单位)环绕,但由于字距调整,我无法预测字符串将占用多少行,因此无法预测矩形应该有多高。我想使用等宽字体,以便我可以预测程序内的高度,但字体保持不变。如果我使用“FreeMono 32”而不是“FreeMono”,它会相应地更改大小,但会忽略字体名称。正如在 LibreOffice Writer 中检查的那样,我确实可以使用 FreeMono 字体。
我试过的代码:
(defun main ()
(ltk:with-ltk ()
(let ((c (make-instance 'ltk:canvas :width 500 :height 500)))
(ltk:pack c)
(let ((txt (ltk:create-text c 100 100 "lorem ipsum dolor sit amet consectetur adipiscing elit")))
(ltk:itemconfigure c txt :width 100)
(ltk:itemconfigure c txt :font "FreeMono")
(ltk:itemconfigure c txt :justify "center")))))
我们可以使用(遗憾的是未记录)函数打印可用字体 font-families
:
(ltk:with-ltk ()
(print (ltk:font-families)))
LTK 无法识别 FreeMono 字体。合适的等宽字体是 NotoSans。新字体可能通过font-create
或font-configure
添加,但缺乏tcl/tk知识,我无法确认或解释。