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

  • 相关阅读:
    codeforces 645C. Enduring Exodus
    test markdown
    codeforces 817C Really Big Numbers
    797C C. Minimal string
    ubuntu配置安卓开发环境记录
    常用网址
    Mysql/Oracle/达梦中数据字典表
    Hadoop0.20.2中MapReduce读取gb2312文件出现乱码问题
    凝思磐石4.2系统字符编码的修改
    hadoop学习(三)HDFS常用命令以及java操作HDFS
  • 原文地址:https://www.cnblogs.com/sallybin/p/3062900.html
Copyright © 2020-2023  润新知