Fonts 文本字段派生类字体在Racket中不起作用

Fonts 文本字段派生类字体在Racket中不起作用,fonts,textbox,scheme,racket,Fonts,Textbox,Scheme,Racket,我正在尝试创建一个具有特定字体的文本字段派生类。该字段可以正常创建,但字体不起作用: #lang racket/gui ; my particular font: (define (myfont size) (make-object font% size 'modern 'normal 'bold)) (define myframe (new frame% [width 600] [label "MyFrame"])) (new text-field% [parent myfra

我正在尝试创建一个具有特定字体的文本字段派生类。该字段可以正常创建,但字体不起作用:

#lang racket/gui 

; my particular font: 
(define (myfont size)  (make-object font% size 'modern 'normal 'bold))

(define myframe (new frame% [width 600] [label "MyFrame"]))  

(new text-field% [parent myframe] [label "Usual text-field; font works here:"] [font (myfont 14)])

; Following is my text-field derived class with a particular font: 
(define mytf% (class text-field%  (field (font (myfont 14))) (super-new)))
(new mytf% [parent myframe] [label "My text-field derived class; font does not work here:"])

(send myframe show #t)

问题在哪里?如何解决?谢谢你的评论/回答

问题在于
font
不是
text field%
中的公共字段。 因此,
(字段(font(myfont 14))
使新字段在
mytf%
中可见,但不被
文本字段%
使用

解决方案是在实例化文本字段时传递字体信息:

(define mytf%
  (class text-field%
    (super-new [font (myfont 14)])))