将图像插入到框架x y坐标中

时间:2013-06-04 23:24:39

标签: scheme racket mit-scheme

您好我想知道如何将图像插入窗口但是带有坐标。

(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

bitmap in dr racket

1 个答案:

答案 0 :(得分:1)

你要做的是反对gui图书馆。 GUI库的设计是你主要对它进行布局控制,而不是试图自己控制它。请参阅Geometry Management

如果您想要更好地控制绘制内容的位置,可以使用单个canvas%实例创建一个框架,并在其中绘制您想要的任何内容。您可以使用画布的绘图上下文(dc)的draw-bitmap

例如:

#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)))))