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

news2024/11/18 10:55:46

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()

结果:
在这里插入图片描述
说明:需要设置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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
说明:如果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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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()

结果:
在这里插入图片描述
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
定义多边形轮廓线的宽度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE- JVM八股文(JVM垃圾回收机制GC)

JVM垃圾回收的目标:主要针对内存中的堆空间进行垃圾回收。 Java中,大量的内存都在堆中。 程序计数器:固定大小,不涉及释放 栈:函数执行完毕,对应栈的空间就自动释放了,不需要垃圾回收 方法区&…

07-Golang中标识符的命名规则

Golang中标识符的命名规则标识符概念标识符的命名规则保留关键字介绍预定义标识符介绍标识符命名注意事项标识符概念 1.Golang对各种变量、方法等命名时使用的字符序列称为标识符 2.凡是自己可以起名字的地方都叫标识符 标识符的命名规则 1.由26个英文字母大小写&#xff0…

华为云桌面之下的“冰山”:技术底座x繁荣生态加速模式进化

在新兴技术迭代升级持续加速的背景下,很多产品类别的内涵和外延都在不断演进——虽然名字没什么变化,但实际所指已有云泥之别。 “云桌面”即是如此。从早期的无盘工作站,到VDI、IDV和VOI等技术流派的群雄并起,云桌面的江湖总是“…

linux第七章---管道、环境变量、常用命令

1.管道 1.1概念: 管道类似于文件重定向,可以将前一个命令的stdout重定向到下一个命令的stdin。 1.2要点: 管道命令仅处理stdout,会忽略stdeer。管道右边的命令必须要能接受stdin.多个管道命令可以串联。 1.3与文件重定向的区…

Java平衡树之查找树的详解(1)

1.平衡树 之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。例如我们依次往二叉查找树中…

c语言预处理(万字解析)

预处理一.总体概述1.注释去除2.宏替换二.宏定义(宏替换类型)1.数值宏常量2.字符串宏常量3.用宏定义注释符号4.用宏定义表达式(难点)1.第一种情况2.第二种情况5.#undef(宏的有效范围)1.两个问题2.#undef的使…

FLStudio2023水果软件哪个版本好用?功能区别对比

FL Studio是一款功能非常强大的音乐创作编辑软件它就是FL Studio(水果软件)。使用FL Studio中文版可以轻松帮我们制作自己的音乐唱片,拥有强大且专业的编曲混音创作工具,有需要的朋友不要错过。 水果,全称Fruity Loop Studio,简称…

量子计算(十六):其他类型体系的量子计算体系

文章目录 其他类型体系的量子计算体系 一、离子阴量子计算 二、原子量子计算 三、核自旋量子计算 四、拓扑量子计算 其他类型体系的量子计算体系 一、离子阴量子计算 离子研量子计算在影响范围方面仅次于超导量子计算。早在2003年,基于离子阴就可以演示两比特…

“转行做程序员”很难?这里有4个重要建议

近几年来,传统行业多处于经济下行,加上互联网行业的赚钱效应,想要转行到这一行的人越来越多,其中程序员这个行业更是很多人梦寐以求的。 但另一方面,我们也发现,这些想要转行的同学们往往会遇到很多困扰。…

推荐今日 火火火火 的开源项目

本期推荐开源项目目录:1. coding-interview-university2. 前端后台管理模板3. 钉钉聊天机器人4. 基于 ChatGPT 的 Neovim 插件5. 开源的分布式社交网络平台6. 分析社交媒体内容7. 用于绘制流程图的库01coding-interview-university这是一个汇集了软件工程师面试中常…

2023跨年代码(烟花+背景音乐)

文章目录前言效果展示使用方法源码学习HTML代码CSS代码前言 时光荏苒,白驹过隙。2022这一年又在忙碌中度过了,过去的一年,我们同努力,我们共欢笑,每一次成功都蕴藏着我们辛勤的劳动。 新的一年即将来到,我…

【linuxgdb】动态链接和静态链接的区别,gdb的基础使用

目录 1.gcc/c动态链接和静态链接的区别 2.gdb的基础使用 2.2使用gdb调试 1.gcc/c动态链接和静态链接的区别 1.1查看可执行文件是动态还是静态的 格式:file文件名 1.2动态链接和静态链接 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的…

ARM S5PV210 串行通信接口详解

一、串行通信接口详解 1 0. 串口的名称 S5PV210 的数据手册中串口控制器在 section8.1串口的官方名称叫:universal asynchronous reciver and transmitter,通用异步收发器 英文缩写是uart,中文简称串口。 1. S5PV210 的串口控制器工作原理…

CSS -- 2D转换各属性讲解(translate,rotate,scale)

文章目录2D转换1 二维坐标系2 2D转换之移动 translate3 2D转换之旋转 rotate4 2D转换中心点 transform-origin5 2D转换之缩放scale6 2D转换综合写法7 2D转换总结2D转换 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果 转换(t…

[ 常用工具篇 ] 使用 kali 实现网络钓鱼 -- setoolkit 详解实战(一)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

密码学讲座PPT

来自山大密码学讲座的PPT。 一些密码学领域常用名词术语 Diffie-Hellman 密钥交换;Elgamal 加密和签名;DSA 签名;因相应的离散对数问题难解,大素数的原根可用于密钥交换;RSA加密和签名: 因大整数因子分解难算,合数可成…

JetPack 组件总结

文章目录JetPackLifecycle使用Lifecycle解耦页面和组件使用Lifecycle解耦Service与组件使用ProcessLifecycleOwner监听应用程序生命周期ViewModel 与 LiveDataViewModelLiveDataViewModel LiveData 实现Fragment间通信DataBinding 的意义与应用意义使用前的配置import标签事件…

SWPUCTF 2021 新生赛

😋大家好,我是YAy_17,是一枚爱好网安的小白,自学ing。 本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。 ⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 目录 g…

Kotlin + Jpa + Querydsl

Kotlin Jpa Querydsl 本篇主要介绍一下 kotlin jpa querydsl . jpa querydsl 是我很喜欢的一种搭配,它能够让你写sql语句一样的去写代码 , 以前我也写过关于 java版本的, 本篇就来看看kotlin中如何去使用 1.引入插件 主要引入jpa插件 和 kapt Kotlin annotation processi…

【剧前爆米花--爪哇岛寻宝】Cloneable接口和深浅拷贝

作者:困了电视剧 专栏:《JavaSE语法与底层详解》 文章分布:这是一篇关于接口的文章,在本篇文章中我会分享Cloneable接口的用法和机制,同时从底层分析深拷贝和浅拷贝的区别。 Cloneable接口 Cloneable这类接口可以说是…