首页 web前端 H5教程 Tkinter教程之Canvas篇(4)

Tkinter教程之Canvas篇(4)

Jan 17, 2017 am 10:18 AM

'''Tkinter教程之Canvas篇(4)'''


'''22.绘制弧形'''


# -*- coding: cp936 -*-


# 创建一个ARC

from Tkinter import *
root = Tk()
登录后复制

# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = 'white')
cv.create_arc((10,10,110,110),)
cv.pack()
root.mainloop()
登录后复制


# 使用默认参数创建一个ARC,结果为90度的扇形


'''23.设置弧形的样式'''


# -*- coding: cp936 -*-


# 创建create_arc.


from Tkinter import *
root = Tk()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制


# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')
d = {1:PIESLICE,2:CHORD,3:ARC}
for i in d:
cv.create_arc((10,10 + 60*i,110,110 + 60*i),style = d[i])
print i,d[i],
cv.pack()
root.mainloop()
登录后复制


# 使用三种样式,分别创建了扇形、弓形和弧形


'''24.设置弧形的角度'''


# -*- coding: cp936 -*-


# 使用start/extent指定起始角度与偏移角度


from Tkinter import *
root = Tk()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')
d = {1:PIESLICE,2:CHORD,3:ARC}
for i in d:
cv.create_arc(
(10,10 + 60*i,110,110 + 60*i),
登录后复制

style = d[i], #指定样式


start = 30, #指定起始角度


extent = 30 #指定角度偏移量


)


cv.pack()


root.mainloop()


# 使用三种样式,start指定起始角度;extent指定角度偏移


'''25.绘制位图'''


# -*- coding: cp936 -*-


# 使用bitmap创建位图create_bitmap


from Tkinter import *


root = Tk()


# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = 'white')
d = {1:'error',2:'info',3:'question',4:'hourglass'}
for i in d:
cv.create_bitmap((20*i,20*i),bitmap = d[i])
cv.pack()
root.mainloop()
登录后复制


# 使用bitmap属性来指定位图的名称,这个函数的第一个参数为一个点(x,y)指定位图存放位置的左上位置。


'''26.绘制GIF图像'''


# -*- coding: cp936 -*-


# 创建gif图像create_image


from Tkinter import *


root = Tk()


# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = 'white')
img = PhotoImage(file = 'c:/python.gif')
cv.create_image((150,150),image = img)
cv.pack()
root.mainloop()
登录后复制


# 先使用PhotoImage创建GIF图像,再将image属性来设置为新创建的img


'''27.绘制直线'''


# -*- coding: cp936 -*-


# 创建带箭头的直线create_line


from Tkinter import *


root = Tk()


# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = 'white')
d = [(0,'none'),(1,'first'),(2,'last'),(3,'both')]
for i in d:
cv.create_line(
(10,10 + i[0]*20,110,110+ i[0] * 20), # 设置直线的起始、终点
arrow = i[1], # 设置直线是否使用箭头
arrowshape = '40 40 10' # 设置箭头的形状(填充长度,箭头长度,箭头宽度
)
cv.pack()
root.mainloop()
登录后复制


# 使用arrow属性来控制是否显示箭头


'''28.直线的joinstyle属性'''


# -*- coding: cp936 -*-


# 创建直线,使用joinstyle属性


from Tkinter import *


root = Tk()


# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')
d = [(0,'none','bevel'),(1,'first','miter'),(2,'last','round'),(3,'both','round')]
for i in d:
cv.create_line(
(10,10 + i[0]*20,110,110+ i[0] * 20), # 设置直线的起始、终点
arrow = i[1], # 设置直线是否使用箭头
arrowshape = '8 10 3', # 设置箭头的形状(填充长度,箭头长度,箭头宽度
joinstyle = i[2],
)
cv.pack()
root.mainloop()
登录后复制


# 将直线的属性joinstyle分别设置为bevel/miter/round,测试其效果。


'''29.绘制椭圆'''


# -*- coding: cp936 -*-


# 绘制椭圆,使用create_oval属性


from Tkinter import *


root = Tk()


# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个长200,宽100的椭圆

cv.create_oval((10,10,210,110),fill = 'red')
cv.pack()
root.mainloop()
登录后复制

# 指定椭圆的长和宽,圆是长和宽相等的特殊情况。


'''30.创建多边形'''


# -*- coding: cp936 -*-


# 创建多边形(三角形)


from Tkinter import *


root = Tk()


# 绘制一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个直角三角形


cv.create_polygon((10,10,10,200,100,200),fill = 'red')
cv.pack()
root.mainloop()
登录后复制

# 指定三个点的坐标,三个点坐标必须满足三角形的定义。


'''31.修饰图形'''


# -*- coding: cp936 -*-


# 创建多边形create_ploygon(三角形)


from Tkinter import *


root = Tk()


# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个直角三角形

cv.create_polygon((10,10,10,200,100,200),
#smooth = True, # 平滑处理,但未找到控制此参数的项
splinesteps = 0, # 不明白是控制什么的???
)
cv.pack()
root.mainloop()
登录后复制


# smooth/splinesteps用来修改绘制的图形,不明白这两个参数还有其它什么作用。


'''32.绘制文字'''


# -*- coding: cp936 -*-


# 使用文字create_text

from Tkinter import *
root = Tk()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个文字对象,默认设置为居中对齐


cv.create_text((10,10),text = 'Hello Text',
anchor = W
)
cv.pack()
root.mainloop()
登录后复制

# 使用anchor控制文字的位置,使用justify控制对齐方式


'''33.选中文字'''


# -*- coding: cp936 -*-


# 使用文字create_text

from Tkinter import *
root = Tk()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制


# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个文字对象,默认设置为居中对齐

txt = cv.create_text((10,10),text = 'Hello Text',
anchor = W
)
登录后复制


# 设置文本的选中起始位置


cv.select_from(txt,2)


# 设置文本的选中结束位置

cv.select_to(txt,5)
cv.pack()
root.mainloop()
登录后复制

# 使用anchor控制文字的位置,使用justify控制对齐方式


'''34.创建组件'''


# -*- coding: cp936 -*-


# 使用子组件create_window

from Tkinter import *
root = Tk()
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个Button对象,默认设置为居中对齐


def printWindow():
print 'window'
bt = Button(cv,text = 'ClickMe',command = printWindow)
登录后复制


#修改button在canvas上的对齐方式


cv.create_window((10,10),window = bt,anchor = W)


# 新创建的line对象与button有重叠


cv.create_line(10,10,20,20)


# 新创建的line不在button之上,即没有重叠


cv.create_line(30,30,100,100)
cv.pack()
root.mainloop()
登录后复制


# 使用anchor组件在Canvas上的位置,默认情况下为居中对齐,这样使用后其它的item将不能再使用button战胜的那块区域

以上就是Tkinter教程之Canvas篇(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用Tkinter在Python中的Place_forget()方法 使用Tkinter在Python中的Place_forget()方法 Sep 03, 2023 am 11:25 AM

Tkinter 是一个流行的 Python GUI 工具包,提供了大量的工具来设计直观的交互式界面,其中,Place_forget() 方法是动态 GUI 布局操作的强大工具。该方法使开发人员能够轻松隐藏或删除小部件

canvas箭头插件有哪些 canvas箭头插件有哪些 Aug 21, 2023 pm 02:14 PM

canvas箭头插件有:1、Fabric.js,具有简单易用的API,可以创建自定义箭头效果;2、Konva.js,提供了绘制箭头的功能,可以创建各种箭头样式;3、Pixi.js,提供了丰富的图形处理功能,可以实现各种箭头效果;4、Two.js,可以轻松地创建和控制箭头的样式和动画;5、Arrow.js,可以创建各种箭头效果;6、Rough.js,可以创建手绘效果的箭头等。

Python GUI编程:快速上手,轻松打造交互式界面 Python GUI编程:快速上手,轻松打造交互式界面 Feb 19, 2024 pm 01:24 PM

pythonGUI编程简述GUI(GraphicalUserInterface,图形用户界面)是一种允许用户通过图形方式与计算机交互的方式。GUI编程是指使用编程语言来创建图形用户界面。Python是一种流行的编程语言,它提供了丰富的GUI库,使得PythonGUI编程变得非常简单。PythonGUI库介绍Python中有许多GUI库,其中最常用的有:Tkinter:Tkinter是Python标准库中自带的GUI库,它简单易用,但功能有限。PyQt:PyQt是一个跨平台的GUI库,它功能强大,

canvas时钟有哪些细节 canvas时钟有哪些细节 Aug 21, 2023 pm 05:07 PM

canvas时钟的细节有时钟外观、刻度线、数字时钟、时针、分针和秒针、中心点、动画效果、其他样式等。详细介绍:1、时钟外观,可以使用Canvas绘制一个圆形表盘作为时钟的外观,可以设置表盘的大小、颜色、边框等样式;2、刻度线,在表盘上绘制刻度线,表示小时或分钟的位置;3、数字时钟,可以在表盘上绘制数字时钟,表示当前的小时和分钟;4、时针、分针和秒针等等。

html2canvas有哪些版本 html2canvas有哪些版本 Aug 22, 2023 pm 05:58 PM

html2canvas的版本有html2canvas v0.x、html2canvas v1.x等。详细介绍:1、html2canvas v0.x,这是html2canvas的早期版本,目前最新的稳定版本是v0.5.0-alpha1。它是一个成熟的版本,已经被广泛使用,并且在许多项目中得到了验证;2、html2canvas v1.x,这是html2canvas的新版本。

学习canvas框架 详解常用的canvas框架 学习canvas框架 详解常用的canvas框架 Jan 17, 2024 am 11:03 AM

探索Canvas框架:了解常用的Canvas框架有哪些,需要具体代码示例引言:Canvas是HTML5中提供的一个绘图API,通过它我们可以实现丰富的图形和动画效果。为了提高绘图的效率和便捷性,许多开发者开发了不同的Canvas框架。本文将介绍一些常用的Canvas框架,并提供具体代码示例,以帮助读者更深入地了解这些框架的使用方法。一、EaselJS框架Ea

uniapp实现如何使用canvas绘制图表和动画效果 uniapp实现如何使用canvas绘制图表和动画效果 Oct 18, 2023 am 10:42 AM

uniapp实现如何使用canvas绘制图表和动画效果,需要具体代码示例一、引言随着移动设备的普及,越来越多的应用程序需要在移动端展示各种图表和动画效果。而uniapp作为一款基于Vue.js的跨平台开发框架,提供了使用canvas绘制图表和动画效果的能力。本文将介绍uniapp如何使用canvas来实现图表和动画效果,并给出具体的代码示例。二、canvas

tkinter canvas有哪些属性 tkinter canvas有哪些属性 Aug 21, 2023 pm 05:46 PM

tkinter canvas属性有bg、bd、relief、width、height、cursor、highlightbackground、highlightcolor、highlightthickness、insertbackground、insertwidth、selectbackground、selectforeground、xscrollcommand属性等等。详细介绍

See all articles