Python tkinter — 第18章 画布控件之椭圆

  • Post author:
  • Post category:python

**18.2.18 create_oval(bbox, options)
根据限定矩形 bbox 在画布上创建一个椭圆。
(1)bbox:定义要创建对象的边界(x1, y1, x2, y2)
(2)options:创建椭圆的选项。选项的具体含义:

选项 含义
activedash 当鼠标经过椭圆对象边框的时候,绘制虚线
activefill 当鼠标经过椭圆对象的时候,填充颜色
activeoutline 当鼠标经过椭圆对象的时候,绘制的轮廓线
activeoutlinestipple 当鼠标经过椭圆对象的时候,指定填充轮廓的位图
activestipple 当鼠标经过椭圆对象的时候,指定填充椭圆的位图
activewidth 当鼠标经过椭圆对象的时候,指定边框的宽度
dash 指定绘制虚线轮廓线
dashoffset 此参数不起作用
disableddash 当椭圆对象状态为 DISABLE 的时候,绘制虚线
disabledfill 当椭圆对象状态为 DISABLE 的时候,填充颜色
disabledoutline 当椭圆对象状态为 DISABLE 的时候,绘制轮廓线
disabledoutlinestipple 当椭圆对象状态为 DISABLE 的时候,指定填充轮廓的位图
disabledstipple 当椭圆对象状态为 DISABLE 的时候,指定填充椭圆的位图
disabledwidth 当椭圆对象状态为 DISABLE 的时候,指定边框的宽度
fill 指定填充的颜色,空字符串表示透明
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 指定一个位图来填充边框,默认值是空字符串,表示黑色
state 指定该椭圆对象的状态,可以是 NORMAL,DISABLED(不可用,不响应事件)和 HIDDEN(隐藏)。默认值是 NORMAL
stipple 指定一个位图用于填充椭圆内部, 默认值是空字符串,表示实心
tags 为创建的椭圆对象添加标签
width 指定边框的宽度
18.2.18.1 activedash
鼠标经过椭圆边框的时候,边框显示为虚线
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval1=b1.create_oval(20,40,150,100,width=10,
                     activedash=True)
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.2 activefill
鼠标位于椭圆区域内的时候,椭圆内部的颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval1=b1.create_oval(20,40,150,100,
                     width=10,activefill='red')
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.3 activeoutline
鼠标经过椭圆边框的时候,椭圆轮廓线的颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval1=b1.create_oval(20,40,150,100,
                     width=10,activeoutline='blue')
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.4 activeoutlinestipple
定义鼠标经过椭圆的时候,填充椭圆轮廓线的填充bitmap。但是因为椭圆的轮廓线是曲线,所以这个参数没有作用。
18.2.18.5 activestipple
定义鼠标经过椭圆的时候,填充椭圆的bitmap。因为椭圆含有曲线,所以此参数不起作用。
18.2.18.6 activewidth
定义鼠标经过椭圆边框的时候,边框的宽度。如果同时设置了width和activewidth的时候,采用数值大的那个。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval1=b1.create_oval(20,40,150,100,width=10,
                     activewidth=15)
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
说明:如果activewidth的数值小于width的数值,则边框的宽度没有变化。
18.2.18.7 dash
绘制虚线边框。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval1=b1.create_oval(20,40,150,100,
                     width=10,dash=True)
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.8 dashoffset
此参数不起作用
18.2.18.9 disableddash
当椭圆的状态是tk.DISABLED的时候,显示虚线边框。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
def state():
    b1.itemconfigure(oval,state=tk.DISABLED)
b2=tk.Button(root,text='Disabled',command=state)
b2.pack()
oval=b1.create_oval(50,50,90,120,
                    width=5,disableddash=1)
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.10 disabledfill
当椭圆的状态是tk.DISABLED的时候,椭圆的填充颜色。用法参见18.2.18.2 activefill节。
18.2.18.11 disabledoutline
当椭圆的状态是tk.DISABLED的时候,绘制轮廓线的颜色。用法参见18.2.18.3activeoutline节。
18.2.18.12 disabledoutlinestipple
当椭圆的状态是tk.DISABLED的时候,轮廓线的填充bitmap。不起作用。
18.2.18.13 disabledstipple
当椭圆的状态是tk.DISABLED的时候,椭圆填充的bitmap。不起作用。
18.2.18.14 disabledwidth
当椭圆的状态是tk.DISABLED的时候,椭圆的宽度。不过此参数有问题,因为不管设置的数值是多少,系统绘制的边框宽度都是1。用法参见18.2.18.6 activewidth节。
18.2.18.15 fill
椭圆内部的填充颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval=b1.create_oval(50,50,90,120,width=5,fill='green')
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.16 offset
定义使用bitmap作为底纹填充时候的如何放置bitmap。不过因为绘制椭圆不支持填充bitmap,所以没有效果。
18.2.18.17 outline
指定轮廓线的颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
oval=b1.create_oval(50,50,90,120,width=5,
                    outline='red')
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
18.2.18.18 outlineoffset
使用bitmap作为底纹填充轮廓线时候的如何放置bitmap。不过因为绘制椭圆不支持填充bitmap,所以没有效果。
18.2.18.19 outlinestipple
指定填充轮廓线的bitmap。不过不起作用。
18.2.18.20 state
定义椭圆的状态。有三种:NORMAL、DISABLED和HIDDEN
18.2.18.21 stipple
指定填充椭圆的bitmap。不过不起作用。
18.2.18.22 tags
给椭圆指定标签。也可以通过其他方法指定。
18.2.18.23 width
定义椭圆轮廓线的宽度。


版权声明:本文为weixin_42272768原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。