我正在使用Racket图形工具包,我正在尝试显示一个建议弹出菜单。
我有一个可供选择的可用字符串列表,我想在文本字段中写入时在弹出菜单中显示它们。
我已设法显示它们,但您必须重新选择文本字段才能继续编写。每次选择文本字段时,弹出菜单都会消失。
这甚至可能吗?如果是这样我怎么能实现这个目标呢?
这里有一个小例子可以更好地解释我的自我:
(define (prueba)
(let* ((ventana (new frame% (label "")))
(sugerencia (new popup-menu%))
(texto (new text-field% (label "prueba")(parent ventana)
(callback (lambda (t e)
(new menu-item% (label (send t get-value))(parent sugerencia)
(callback (lambda (i e) (void))))
(send ventana popup-menu sugerencia (+ 50 (send t get-x)) (+(send t get-height)(send t get-y))))))))
(send ventana show #t)))
答案 0 :(得分:1)
您不想在此处使用popup-menu%
,这是您通过右键单击获得的上下文菜单类型。相反,您应该只创建一个新窗口(或者只是一个新的frame%
,它将具有适当的回调以将建议插入主frame%
。