Python图形绘制——TKinter的Canvas组件快速入门(一)

Canvas,是TKinter中用于图形绘制或复杂的图形界面布局。其中文翻译为:画布。可以简单理解为,canvas就是图画的载体。

创建Canvas对象,并显示在窗口中

Canvas是属于tkinter中的一个类,所以在使用是,我们应先导入tkinter。

from tkinter impor *		#导入tkinter库

windows = TK()		#创建主窗口

Canvas对象 = Canvas(主窗口,选项,)  #创建一个Canvas对象

下面给出常用的选项

属性 说明
bd 指定画布的边框宽度,单位是像素
bg 指定画布的背景颜色
confine 指定画布在翻滚区域外是否可以滚动,默认值为True,表示不能翻滚
cursor 指定画布中的鼠标指针
heihgt 指定画布高度
highlightcolor 选中画布时的背景颜色
relief 指定画布的边框样式,
scrollregion 指定画布的翻滚区域的元组(w,n,e,s)
from tkinter impor *		#导入tkinter库

windows = TK()		#创建主窗口

test_canvas = Canvas(windows,bg='green', confine=False)  #创建一个Canvas对象
test_canvas.pack()		#显示画布

windows.mainloop()   #设置窗口循环.可以简单理解为显示窗口

Canvas 图形对象

我们前面说过,可以在Canvas(画布)上画画,那么可以在上面画些什么和怎么实现呢?下面列举可以实现绘制图像的函数.

  • create_arc(): 绘制圆弧.
  • create_oval(): 绘制椭圆.
  • create_line(): 绘制直线.
  • create_rectangle():绘制矩形.
  • create_bitmap(): 绘制位图.
  • create_polygon(): 绘制多边形.
  • create_image(): 绘制位图图像.
  • create_window(): 绘制子窗口.
  • create_text(): 文字对象

注:以上函数只能作用于Canvas对象

具体实现:

create_arc() 绘制圆弧

使用create_arc()可以创建一个弦,饼图或者扇形.

Canvas对象.create_acr( (x1, y1, x2, y2),选项.....)

'''x1, y1  代表弧外框矩形左上角的坐标
x2, y2 代表弧外框矩形右下角的坐标

常用选项:
outline: 图形轮廓颜色
fill: 图像的填充颜色
width: 圆弧边框的宽度
start: 圆弧的起始角度
extent: 圆弧的偏移角度
'''

示例代码:

from tkinter import *
windows = Tk()

test_canvas = Canvas(windows, bg='green')
test_canvas.create_arc((10,10,200,200), start=0, extent=90, fill='red', outline='blue', width=3)
test_canvas.pack()

windows.mainloop()

Python图形绘制——TKinter的Canvas组件快速入门(一)_第1张图片
若要实现弓形和弧形,可以在使用style选项

from tkinter import *
windows = Tk()

test_canvas = Canvas(windows, bg='green')
styles = ['chord', 'arc'] 
#'chord'为弓形,'arc'为弧形
for style in styles:
    test_canvas.create_arc((10,10+70*(styles.index(style)),100,100+70*(styles.index(style))), start=0, extent=90, fill='red', outline='blue', width=3, style=style)


test_canvas.pack()

windows.mainloop()

Python图形绘制——TKinter的Canvas组件快速入门(一)_第2张图片

接Python图形绘制——TKinter的Canvas组件快速入门(二):
https://blog.csdn.net/nole_/article/details/106982212

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