我现在设置它的方式使其可以使用,以便在单击按钮时交换图像。但是按钮图像在单击后仍保持交换状态。放开左键后如何将其恢复为原始图像?
(define spin-img
(read-bitmap "slot_machine/Bare Bones Slot Machine Frame/spin.png"))
(define spin-pressed-img
(read-bitmap "slot_machine/Bare Bones Slot Machine Frame/spin_pressed.png"))
(define spin-button
(new button% [parent panel] [label spin-img]
[callback (lambda (button event)
(send spin-button set-label spin-img-pressed)]))
答案 0 :(得分:0)
快速实验(请参见下面的代码)显示,左键单击按钮时未收到按钮事件-释放鼠标时会收到事件。
尝试单击按钮,然后注意打印事件的时间和内容。 也可以尝试单击按钮,将光标移到按钮外然后释放。
#lang racket
(require racket/gui)
(define frame (new frame% [label "Example"]))
(define msg (new message% [parent frame]
[label "No events so far..."]))
(new button% [parent frame]
[label "Click Me"]
[callback (lambda (button event)
(displayln (list (send event get-event-type)
(send event get-time-stamp)))
(send msg set-label "Button click"))])
(send frame show #t)
如果您希望更改可点击的图像,也许可以使用小画布解决? 画布可以在您按下鼠标和按下鼠标时为您提供事件。