球拍:检测按钮的位图标签(点击按钮时在标签之间切换)
racket: detect bitmap label of button (to switch between labels on button click)
当前代码:
(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) 我需要某种代码来获取当前标签,以便我可以将其切换到备用标签。一个例子将是完美的,欢迎任何其他评论!提前致谢:)
您可以使用 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)
这将创建一个带有单个按钮的 window,当您按下它时,该按钮会在文本 "label1"
和 "label2"
之间交替。
当前代码:
(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) 我需要某种代码来获取当前标签,以便我可以将其切换到备用标签。一个例子将是完美的,欢迎任何其他评论!提前致谢:)
您可以使用 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)
这将创建一个带有单个按钮的 window,当您按下它时,该按钮会在文本 "label1"
和 "label2"
之间交替。