zoukankan      html  css  js  c++  java
  • Tkinter教程之Canvas篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811888

    '''Tkinter教程之Canvas篇(2)'''
    '''9.创建item的tags'''
    # -*- coding: cp936 -*-
    # 使用属性tags设置item的tag
    # 使用Canvas的方法gettags获取指定item的tags
    from Tkinter import *
    root = Tk()
    # 创建一个Canvas,设置其背景色为白色
    cv = Canvas(root,bg = 'white')
    # 使用tags指定一个tag('r1')
    rt = cv.create_rectangle(10,10,110,110,
                             tags = 'r1'
                             )
    cv.pack()

    print cv.gettags(rt)
    # 使用tags属性指定多个tags,即重新设置tags的属性
    cv.itemconfig(rt,tags = ('r2','r3','r4'))
    print cv.gettags(rt)
    root.mainloop()
    # 动态修改item的坐标
    '''10.多个item使用同一个tag'''
    # -*- coding: cp936 -*-
    # 多个控件使用同一个tag
    from Tkinter import *
    root = Tk()
    # 创建一个Canvas,设置其背景色为白色
    cv = Canvas(root,bg = 'white')
    # 使用tags指定一个tag('r1')
    rt = cv.create_rectangle(10,10,110,110,
                             tags = ('r1','r2','r3')
                             )
    cv.pack()

    cv.create_rectangle(20,20,80,80,tags = 'r3')
    print cv.find_withtag('r3')
    root.mainloop()
    # 动态修改item的坐标
    #fid_withtag返回所有与tag绑定的item。
    '''11.通过tag来访问item'''
    # -*- coding: cp936 -*-
    # 得到了tag值也就得到了这个item,可以对这个item进行相关的设置。
    from Tkinter import *
    root = Tk()
    # 创建一个Canvas,设置其背景色为白色
    cv = Canvas(root,bg = 'white')
    # 使用tags指定一个tag('r1')
    rt = cv.create_rectangle(10,10,110,110,
                             tags = ('r1','r2','r3')
                             )
    cv.pack()

    cv.create_rectangle(20,20,80,80,tags = 'r3')
    # 将所有与tag('r3')绑定的item边框颜色设置为蓝色
    for item in cv.find_withtag('r3'):
        cv.itemconfig(item,outline = 'blue')
    root.mainloop()
    # 动态修改与tag('r3')绑定的item边框颜色
    '''13.向其它item添加tag'''
    # -*- coding: cp936 -*-
    # 使用addtag_来向上一个或下一个item添加tag
    from Tkinter import *
    root = Tk()
    # 创建一个Canvas,设置其背景色为白色
    cv = Canvas(root,bg = 'white')
    # 创建三个rectangle
    rt1 = cv.create_rectangle(
        10,10,110,110,
        tags = ('r1','r2','r3'))
    rt2 = cv.create_rectangle(
        20,20,80,80,
        tags = ('s1','s2','s3'))
    rt3 = cv.create_rectangle(
        30,30,70,70,
        tags = ('y1','y2','y3'))
    # 向rt2的上一个item添加r4
    cv.addtag_above('r4',rt2)
    # 向rt2的下一个item添加r5
    cv.addtag_below('r5',rt2)

    for item in [rt1,rt2,rt3]:
        print cv.gettags(item)

    cv.pack()
    root.mainloop()
    #Canvas使用了stack的技术,新创建的item总是位于前一个创建的item之上,故调用above时,它会查找rt2上面的item为rt3,故rt3中添加了tag('r4'),同样add_below会查找下面的item。
    '''14.返回其它item'''
    # -*- coding: cp936 -*-
    # 使用find_xxx查找上一个或下一个item
    from Tkinter import *
    root = Tk()
    # 创建一个Canvas,设置其背景色为白色
    cv = Canvas(root,bg = 'white')
    # 创建三个rectangle
    rt1 = cv.create_rectangle(
        10,10,110,110,
        tags = ('r1','r2','r3'))
    rt2 = cv.create_rectangle(
        20,20,80,80,
        tags = ('s1','s2','s3'))
    rt3 = cv.create_rectangle(
        30,30,70,70,
        tags = ('y1','y2','y3'))
    # 查找rt2的上一个item,并将其边框颜色设置为红色
    cv.itemconfig(cv.find_above(rt2),outline = 'red')
    # 查找rt2的下一个item,并将其边框颜色设置为绿色
    cv.itemconfig(cv.find_below(rt2),outline = 'green')

    cv.pack()
    root.mainloop()
    #Canvas使用了stack的技术,新创建的item总是位于前一个创建的item之上,故调用above时,它会查找rt2上面的item为rt3,故rt3中边框颜色设置为红色,同样add_below会查找下面的item。

  • 相关阅读:
    Lock接口与等待唤醒机制
    线程同步(线程安全处理Synchronized)与死锁
    关于线程安全的例子(电影票出售)
    线程池
    多线程
    commons-IO工具包
    打印流
    关于web的安全问题
    防止手机页面软键盘调出时布局被挤压
    css3新特性归总笔记
  • 原文地址:https://www.cnblogs.com/LeeZz/p/3984358.html
Copyright © 2011-2022 走看看