Scheme 将图像插入到帧x y坐标中

Scheme 将图像插入到帧x y坐标中,scheme,racket,mit-scheme,Scheme,Racket,Mit Scheme,嗨,我想知道如何插入一个图像到一个窗口,但坐标 (define ventana (new frame% [label "Ba"] [width 1100] [height 600])) (define tablero-panel (new horizontal-panel% (parent ventana)

嗨,我想知道如何插入一个图像到一个窗口,但坐标

(define ventana (new frame%
                   [label "Ba"]
                   [width 1100]
                   [height 600]))


(define tablero-panel (new horizontal-panel%
                             (parent ventana)
                             ;(label "Group Box Panel")
                             (alignment   '(left top))
                             (min-width 500)
                             (min-height 500)
                             (stretchable-width #f)
                             (stretchable-height #f)
                             ;(spacing 100)
                             ;(vert-margin 100)
                             ;(horiz-margin 500)
                            ; (border 50)

                             )
  )
我需要那个图像在窗框里,但在特定的坐标里

若要插入,我在该页上找到了,但我无法协调它们可以在xy中


您试图做的是违反gui库的粒度。GUI库的设计主要是将布局的控制权交给它,而不是试图自己控制它。看

如果您想要更多地控制绘制对象的位置,可以使用单个实例创建一个框架,并在该框架内绘制您想要的任何内容。您可以使用画布的绘图上下文(dc)

例如:

#lang racket/gui
(require net/url)


(define f (new frame% 
               [label "Test"]
               [width 500]
               [height 500]))

(define bm (make-object bitmap% (get-pure-port
                                 (string->url "http://racket-lang.org/logo.png"))))

(define pos 0)

(define mycanvas%
  (class canvas%
    (super-new)
    (inherit get-dc)
    (define/override (on-paint)
      (let ([my-dc (get-dc)])
        (send my-dc draw-bitmap bm pos pos)))))

(define c (new mycanvas% [parent f]))

(send f show #t)

(void
 (thread (lambda ()
           (let loop ()
             (set! pos (add1 pos))
             (send c refresh)
             (sleep 1/20)
             (loop)))))

上述代码在语法上不正确。你试过了吗?事实是,我有这样一个想法:它在主消息中被编辑一个公共用户如何通过消息%但是我不能设置显示图像的窗口的坐标