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

                                                       '''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。

  • 相关阅读:
    Java读书笔记
    b_aw_旅游计划(树的中心变形)
    b_lc_秋叶收集器(分类讨论dp+滚动数组优化)
    b_lg_涂色(从小区间做起,讨论s[l]和s[r]的关系)
    c_lc_早餐组合(排序+双指针)
    c_aw_鱼塘钓鱼(大根堆)
    b_pat_栈(2*multiset+stack)
    c_pat_推荐系统(set模拟)
    b_lg_时态同步(后序遍历统计每棵子树的最大高度)
    b_lc_统计不开心的朋友(预处理+模拟)
  • 原文地址:https://www.cnblogs.com/sallybin/p/3062900.html
Copyright © 2011-2022 走看看