球拍:检测按钮的位图标签(在按钮点击时切换标签)

时间:2016-02-11 00:39:07

标签: button bitmap label panel racket

当前代码:

(define test (new button%
   [parent lower_panel]
   [label (make-bitmap-label "" testPic2)]
   [callback (λ (o e)
               (cond
                 ((= label pic) (send test set-label testPic2))
                 ((= label pic) (send test set-label testPic1)) )]
   ))    

而不是(= label pic)我需要某种代码来获取当前标签,以便我可以将其切换到备用标签。一个例子是完美的,任何其他评论欢迎!在此先感谢:)

1 个答案:

答案 0 :(得分:0)

您可以使用get-label方法获取按钮标签。

因此,举个例子(并将标签切换为"label1""label2",我们得到:

#lang racket/gui

(define frame (new frame% [label "Example"]))

(define test (new button%
                  [parent frame]
                  [label "label1"]
                  [callback (λ (o e)
                              (cond
                                [(equal? (send test get-label) "label1")
                                 (send test set-label "label2")]
                                [(equal? (send test get-label) "label2")
                                 (send test set-label "label1")]))]))

(send frame show #t)

这会创建一个带有单个按钮的窗口,当您按下该按钮时,该按钮会在文本"label1""label2"之间切换。