Tk Canvas 简单印象

@ 2009-07-19 17:17:27
标签:

    # 2007/11/17 20:31 @ tcltk

    Canvas,可以称之为画布,是Tk中的重要控件之一。

    作为画布,我们可以定义画布的大小,背景色等,一个简单的画布可以用下面的命令创建

    canvas .c -width 400 -height 400 -bg yellow
    pack .c
    

    图形元素

    有了画布之后,就可以开始创作了。想想看,我们一般会画哪些东西呢:

    • 直线:line
    • 矩形:rectangle
    • 多边形:polygon
    • 圆形(包括椭圆):oval
    • 弧形:arc
    • 文本:text
    • 图片:bitmap & image
    • 控件:window

    在Tk中,它们看起来可能是这样

    .c create line x1 y1 ... xn yn
    .c create rectangle $llx $lly $urx $ury
    .c create polygon x1 y1 ... xn yn
    .c create text $x $y -text $text
    .c create oval
    .c create arc
    .c create bitmap
    .c create image
    .c create window
    .c create application-defined-type
    

    其中 application-defined-type 是指程序通过C扩展实现的自定义类型。

    我们当然也希望可以对这些图形进行修饰,一些简单的属性看起来如下

    • -fill color : 填充色
    • -outline color:边框色
    • -dash:边框风格,(比如虚线)

    图形操作

    Canvas还提供了些很有用的方法对图形进行处理,比较有用的包括

    # 移动特定的图形
    .c move all $dx $dy
    
    # 按比例缩放图形
    .c scare all $ox $oy $scale_x $scale_y
    
    # 生成 postscript 文件
    .c postscript ?option value option value ...?
    
    # 移动画布
    .c scan mark $x $y
    .c scan dragto $x $y 1.0
    
    

    一些细节

    我们已经看到Canvas可以作很多事情,现在有必要注意一些细节

    坐标系

    Canvas的 x 轴是自左向右的,y 轴是自上向下的。Canvas目前还没有提供进行坐标系变换的方法。

    标签:

      分享到:
      comments powered by Disqus

      28/32ms