和伯衡君一起学习python的GUI界面库——Tkinter(十二)

已收录   阅读次数: 1,071
2021-04-0723:35:00 发表评论
摘要

伯衡君列出了tkinter的学习目录,正在陆续补全中,具体可以参看下方的前情提要,而本篇文章,主要来说一下其中的Canvas的一些相关知识点,以方便大家一起掌握这个小插件的相关知识,分享给大家……

分享至:
和伯衡君一起学习python的GUI界面库——Tkinter(十二)

开篇寄语

伯衡君列出了tkinter的学习目录,正在陆续补全中,具体可以参看下方的前情提要,而本篇文章,主要来说一下其中的Canvas的一些相关知识点,以方便大家一起掌握这个小插件的相关知识,分享给大家。

前情提要

内容详情

“Canvas”小部件是Tkinter在Python中提供的更独特,更高级的小部件之一。它的用法类似于绘图板,您可以在其上进行绘画和绘画。
您可以在Canvas窗口小部件上绘制各种事物,例如图形,曲线图,饼图,折线,矩形等。其中更有趣的用途之一是用于统计的Matplotlib库。 Matplotlib可以创建各种图形和绘图,您可以将这些绘图直接附加到Tkinter画布上。

选项列表

NoOptionDescription
1bg小部件的背景颜色
2bd小部件周围边框的大小。默认值为2像素
3confine如果为True,则无法将画布滚动到滚动区域之外。默认值为True
4cursor当鼠标悬停在这个小部件上时,它可以被更改为一个特殊的光标类型,如arrow或dot
5height小部件的高度
6highlightcolor窗口小部件聚焦时的突出显示颜色
7scrollregion具有格式(左,上,右,下)的元组,用于定义可以在其上滚动画布的区域。如果“画布”宽度为300,而左侧值为500,则画布可以向左滚动200像素
8relief它指定边框的类型。默认为Flat,其他选项包括RAISED和SUNKEN.
9width复选按钮的宽度
10xscrollcommand允许用户水平滚动
11xscrollincrement确定每次滚动将x滚动值增加多少,例如单击滚动条的箭头。确保使用正值
12yscrollcommand允许用户垂直滚动
13yscrollincrement与xscrollincrement相同,但用于Y轴。确保使用正值

举例说明

最流行的功能之一,create_arc()用于在Tkinter画布上绘制圆弧。它采用以下格式的一组坐标X0,Y0,X1,Y1。

您实际上要做的是定义两个点(例如一条线),然后使用该线画一个圆。范围选项的取值范围是1到360,代表一个圆的360度。开始选项确定从哪里开始弧(以度为单位)

from tkinter import *
 
root = Tk()
 
frame=Frame(root,width=300,height=300)
frame.pack(expand = True, fill=BOTH)
 
canvas = Canvas(frame,bg='white', width = 300,height = 300)
 
coordinates = 20, 50, 210, 230
arc = canvas.create_arc(coordinates, start=0, extent=250, fill="blue")
arc = canvas.create_arc(coordinates, start=250, extent=50, fill="red")
arc = canvas.create_arc(coordinates, start=300, extent=60, fill="yellow")
 
canvas.pack(expand = True, fill = BOTH)
 
root.mainloop()

由于所有圆弧都具有相同的原点,因此我们赋予它们相同的坐标。还要注意的另一点是,弧线是逆时针方向延伸的,具体效果如下图所示:

和伯衡君一起学习python的GUI界面库——Tkinter(十二)

还是很简单的嘛,是不是一学就会了?

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: