Python tkinter -- 第18章 画布控件之多边形

18.2.19 create_polygon(coords, **options)
根据 coords 给定的坐标,在画布上绘制一个多边形。
(1)coords:给定多边形的坐标
(2)options:选项的具体含义:

选项 含义
activedash 当鼠标经过多边形对象的时候,绘制虚线边框
activefill 当鼠标经过多边形对象的时候,填充颜色
activeoutline 当鼠标经过多边形对象的时候,绘制轮廓线
activeoutlinestipple 当鼠标经过多边形对象的时候,指定填充轮廓的位图
activestipple 当鼠标经过多边形对象的时候,指定填充的位图
activewidth 当鼠标经过多边形对象的时候,指定边框的宽度
dash 指定绘制虚线轮廓
dashoffset 指定虚线轮廓开始的偏移位置,该参数无效
disableddash 当多边形对象状态为 DISABLE 的时候,绘制虚线
disabledfill 当多边形对象状态为 DISABLE 的时候,填充颜色
disabledoutline 当多边形对象状态为 DISABLE 的时候,绘制轮廓线
disabledoutlinestipple 当多边形对象状态为 DISABLE 的时候,指定填充轮廓的位图
disabledstipple 当多边形对象状态为 DISABLE 的时候,指定填充的位图
disabledwidth 当多边形对象状态为 DISABLE 的时候,指定边框的宽度
fill 指定填充的颜色,空字符串表示透明
joinstyle 指定当绘制两个相邻线段之间接口的样式,该选项的值可以是:
ROUND(以连接点为圆心,1/2 width 选项设置的长度为半径绘制圆角)
BEVEL(在连接点处对两线段的夹角平切)
MITER(沿着两线段的夹角延伸至一个点)
默认值是 ROUND
offset 指定填充位图的偏移,该选项的值可以是:“x,y”, “#x,y”, N, NE, E, SE, S, SW, W, NW, CENTER
outline 指定轮廓的颜色
outlineoffset 指绘制填充轮廓位图的偏移,该选项的值可以是:“x,y”, “#x,y”, N, NE, E, SE, S, SW, W, NW, CENTER
outlinestipple 当 outline 选项被设置时,该选项用于指定一个位图来填充边框,默认值是空字符串,表示黑色
smooth 该选项的值为 True 时,将绘制贝塞尔样条曲线代替线段。默认值为 False
splinesteps 当绘制贝塞尔样条曲线的时候,该选项指定由多少条折线来构成曲线,默认值是 12。只有当 smooth 选项为 True 时该选项才能生效
state 指定该多边形对象的状态,可以是 NORMAL,DISABLED(不可用,不响应事件)和 HIDDEN(隐藏)。默认值是 NORMAL
tags 为创建的多边形对象添加标签
width 指定边框的宽度
18.2.19.1 activedash
鼠标经过多边形的时候,边框显示为虚线。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activedash=True,
                       outline='blue')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第1张图片
说明:需要设置outline或者activeoutline,否则多边形默认是没有边框的。activedash就不会起作用了。
18.2.19.2 activefill
鼠标经过多边形的时候,多边形内部的颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       activefill='red')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第2张图片
18.2.19.3 activeoutline
鼠标经过多边形的时候,多边形轮廓线的颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activeoutline='red')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第3张图片
18.2.19.4 activeoutlinestipple
定义鼠标经过多边形的时候,填充多边形轮廓线的bitmap。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activeoutline='red',
                       activeoutlinestipple='error')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第4张图片
18.2.19.5 activestipple
定义鼠标经过多边形的时候,填充多边形的bitmap。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activeoutline='red',
                       activestipple='@x.xbm')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第5张图片
18.2.19.6 activewidth
定义鼠标经过多边形的时候,边框的宽度。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activewidth=20,
                       activeoutline='red')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第6张图片
说明:如果activewidth的数值小于width的数值,则边框的宽度没有变化。
18.2.19.7 dash
绘制虚线边框。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,outline='blue',dash=True)
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第7张图片
18.2.19.8 dashoffset
此参数不起作用。
18.2.19.9 disableddash
当多边形的状态是tk.DISABLED的时候,显示虚线边框。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
def state():
    b1.itemconfigure(pol1,state=tk.DISABLED)
b2=tk.Button(root,text='Disabled',command=state)
b2.pack()
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=5,outline='blue',
                       disableddash=True)
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第8张图片
18.2.19.10 disabledfill
当多边形的状态是tk.DISABLED的时候,多边形的填充颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
def state():
    b1.itemconfigure(pol1,state=tk.DISABLED)
b2=tk.Button(root,text='Disabled',command=state)
b2.pack()
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=5,outline='blue',
                       disabledfill='red')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第9张图片
18.2.19.11 disabledoutline
当多边形的状态是tk.DISABLED的时候,绘制轮廓线的颜色。用法参见18.2.19.3 activeoutline节。
18.2.19.12 disabledoutlinestipple
当多边形的状态是tk.DISABLED的时候,轮廓线的填充bitmap。用法参见18.2.19.4 activeoutlinestipple节。
18.2.19.13 disabledstipple
当多边形的状态是tk.DISABLED的时候,填充多边形的bitmap。用法参见18.2.19.5 activestipple节。
18.2.19.14 disabledwidth
当多边形的状态是tk.DISABLED的时候,多边形边框的宽度。用法参见18.2.19.6 activewidth节。
18.2.19.15 fill
多边形内部的填充颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=5,outline='blue',fill='red')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第10张图片
18.2.19.16 joinstyle
定义多边形线段交汇的模式,有三种ROUND、BEVEL和MITER。详细的说明见18.2.17.15。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,250,100,140,160,30,120,
                       width=25,outline='blue',
                       joinstyle='round')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第11张图片
18.2.19.17 offset
使用bitmap作为底纹填充时候的如何放置bitmap。参见18.2.17.16 的说明。
18.2.19.18 outline
指定轮廓线的颜色。如果没有指定轮廓线的颜色,会使用内部填充的颜色。默认值是黑色的。
18.2.19.19 outlineoffset
使用bitmap作为底纹填充轮廓线时候的如何放置bitmap。见18.2.17.16的说明。

18.2.19.20 outlinestipple
指定填充轮廓线的bitmap。用法参见18.2.19.4 activeoutlinestipple节。
18.2.19.21 smooth
是否让多边形的边框光滑处理。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,250,100,140,160,30,120,
                       width=15,outline='blue',
                       smooth=True)
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第12张图片
18.2.19.22 splinesteps
当smooth=True时,如何光滑曲线?可以靠splinesteps。此参数定义线段2个点之间的光滑曲线的步长,点数越多,曲线越光滑。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,250,100,140,160,30,120,
                       width=15,outline='blue',
                       smooth=True,splinesteps=3)
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件之多边形_第13张图片
18.2.19.23 state
定义多边形的状态。有三种:NORMAL、DISABLED和HIDDEN
18.2.19.24 stipple
指定填充多边形的bitmap。用法参见18.2.19.5 activestipple。
18.2.19.25 tags
给多边形指定标签。也可以通过其他方法指定。

18.2.19.26 width
定义多边形轮廓线的宽度。

你可能感兴趣的:(Python,tkinter,Python,tkinter)