Элементы графического интерфейса в (Dr) Racket - PullRequest
1 голос
/ 16 марта 2011

Мне нужны некоторые базовые вещи для работы с библиотекой GUI в Racket.

  1. Как мне установить функцию обратного вызова для такой кнопки:

    (define next (new button% [parent frame] [label "Next ->"]))
    
  2. Как нарисовать что-то на холсте после того, как оно было создано следующим образом:

    (define canvas (new canvas% [parent frame]  
        [paint-callback canvasdc]))
    
    (define canvasdc (lambda (canvas dc)  
        (send dc set-text-foreground "black")  
        (send dc draw-text "Some title!" 0 0)  
    ))
    

    Мне нужно было бы нарисовать (изменить размеры jpegs или, если не удалось) составные фигуры и перекрасить с помощьючто-то еще на каждое нажатие кнопки событие

1 Ответ

1 голос
/ 16 марта 2011
  1. Существует необязательный аргумент callback для конструктора кнопки.

  2. См. http://docs.racket -lang.org / draw / Overview.html . Но меня смущает ваш вопрос, так как код, который вы разместили , включает рисование на холсте. В частности, для изображений read-bitmap будет считывать растровое изображение из файла; draw-bitmap нарисует растровое изображение в DC. Вы можете получить его (вместе со всеми остальными чертежами в этом DC), набрав set-scale. Если DC, в который вы входите, это bitmap-dc (я не думаю, что a canvas-dc есть, но я не эксперт по ракеткам и могу ошибаться), тогда вы можете сделать это напрямую, используя draw-bitmap-section-smooth.

...