版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章图形绘制第9章
图形绘制Tkinter概述画布绘图图形的事件处理图形绘制应用举例9.1Tkinter概述Tkinter是Python语言的标准GUI库,常被用于快速开发小型图形界面应用程序。9.1.2使用Tkinter创建GUI程序的步骤(1)导入Tkinter模块。importtkinter(导入tkinter模块)importtkinterastk(导入tkinter模块为tk)fromtkinterimport*(导入tkinter的所有内容)(2)建立主窗口。 root=tkinter.Tk()
(5)绑定事件处理程序响应用户操作(如单击按钮)引发的
事件。(6)进入事件循环,等待用户触发事件响应。root.mainiloop()(3)在主窗口中添加控件,如文本框、按钮等。(4)调用控件的pack()、grid()、place()方法,通过几何布局管理器调整并显示其位置和大小。9.1.3Tkinter的主窗口Tkinter的主窗口也被称为根窗体,是图形化应用程序的根容器,是Tkinter模块底层控件的实例。在导入Tkinter模块后,我们可以调用Tk()方法来初始化一个根窗体实例。window=Tk()例9-1
最简单的GUI程序示例。(1)在Python程序中导入Tkinter模块。(2)创建窗体对象。(3)启动消息循环。fromtkinterimport*
frm_main=Tk()
frm_main.mainloop()2.装饰界面属性说明举例title(str)窗口标题,str表示参数类型为字符串title(‘数据分析’〕iconbitmap(str)窗口左上角程序图标iconbitmap(".\\pic\\SUN.ICO")geometry(‘宽x高距左右边距上下边’)窗体的几何尺寸及在屏幕中的位置,其中x不能少,距左边用+右边用-,距上边用+下边用-geometry(‘800x500+100+50’)resizable(b,b)窗体尺寸的可变性,b表示逻辑型resizable(0,0)(高宽都不可变)9.1.4画布对象的创建画布(canvas)是用来绘制图形的区域,所有tkinter模块中的图形操作都是在画布上完成的。(1)创建一个画布对象画布对象名=Canvas(窗口对象名,属性名=属性值,...)画布对象的常用属性:高度(height)、宽度(width)、背景色(bg或background)等。c=Canvas(w,width=300,height=200,bg='white')(2)
显示画布对象c.pack()(3)
可对画布的属性进行设置c['bg']='green'9.1.5画布中的图形对象各种图形对象的共性操作1.图形对象的标识:采用标识号和标签(tag)标识号是在创建图形对象时自动为其赋予的唯一整数编号。为图形对象指定标签的三种方法:(1)在创建图形时,利用tags属性来指定标签。(2)创建图形之后,可以利用画布的itemconfig()方法对tags属性进行设置。(3)利用画布的addtag_withtag()方法来为图形对象添加新标签。例如:>>>id1=c.create_rectangle(10,10,100,50,tags="No1")>>>id2=c.create_rectangle(20,30,200,100,tags=("myRect","No2"))>>>c.itemconfig(id1,tags=("myRect","Rect1"))>>>c.addtag_withtag("ourRect","Rect1")注意:一个图形对象可以与多个标签相关联,同样一个标签可以与多个图形对象相关联。2.图形对象的共性操作(1)gettags()方法:用于获取给定图形对象的所有标签。(2)find_withtag()方法:用于获取与给定标签相关联的所有图形对象。(3)delete()方法:用于从画布上删除指定的图形对象。(4)move()方法:用于在画布上移动指定图形。>>>print(c.gettags(id1))('myRect','Rect1','ourRect')>>>print(c.find_withtag("Rect1"))>>>c.delete(id1)>>>c.move(id2,10,20)9.2画布绘图9.2.1绘制矩形方法:create_rectangle()
格式:r=画布对象名.create_rectangle(x0,y0,x1,y1,属性设置……)其中,(x0,y0)是矩形左上角的坐标,(x1,y1)是矩形右下角的坐标。属性设置即对矩形的属性进行设置。r保存图形的标识号。>>>r=c.create_rectangle(80,70,250,180,tags="Rect2")2.矩形对象的常用属性(1)矩形边框属性outline属性:通过outline属性可以设置矩形的边框颜色,默认值为黑色。width属性:通过width属性可以设置边框的宽度,默认值为1像素。dash属性:通过dash属性可以绘制边框成虚线形式,该属性的值是整数元组。例如二元组(a,b),其中a表示要画多少个像素,b表示要跳过多少个像素。(2)矩形内部填充属性fill属性:通过fill属性可以设置矩形内部区域的填充颜色,默认值为空字符串,即透明的效果。stipple属性:在填充颜色时,可以使用stipple属性设置填充画刷,即填充的点刻效果,可以取gray12、gray25、gray50、gray75等值。state属性:该属性用于设置图形的显示状态,默认值为NORMAL或normal,即正常显示。9.2.2绘制椭圆与圆弧1.绘制椭圆画布对象名.create_oval(x0,y0,x1,y1,属性设置……)例9-3绘制如图所示的圆和椭圆fromtkinterimport*w=Tk()w.title('绘制圆和椭圆')c=Canvas(w,width=260,height=260,bg='white')c.pack()c.create_oval(30,30,230,230,fill='black',width=2)c.create_oval(30,80,230,180,fill='green',width=2)c.create_oval(80,30,180,230,fill='white',width=2)2.绘制圆弧canvas.create_arc(x0,y0,x1,y1,属性设置...)属性start:定义弧形的开始位置,其值为一个角度(x轴方向为0º)。默认值为0º。属性extent:定义弧形的结束位置,其值表示从开始位置逆时针旋转的角度。默认值为90º。属性style用于规定圆弧的样式,可以取三种值:PIESLICE:扇形,即圆弧两端与圆心相连,默认值;ARC:弧,即圆周上的一段;CHORD:弓形,即弧加连接弧两端的弦。fromtkinterimport*w=Tk()c=Canvas(w,width=350,height=200,bg="white")c.pack()c.create_arc(20,40,100,120,width=2)#默认样式是PIESLICEc.create_arc(120,40,200,120,style=CHORD,width=2)c.create_arc(220,40,300,120,style=ARC,width=2)例子:9.2.3显示文本画布对象名.create_text(x,y,属性设置...)(x,y)指定文本显示的参考位置text属性:设置文本内容,其值即为要显示的字符串。anchor属性:用于指定文本的哪个锚点与显示位置(x,y)对齐。锚点可通过E(东)、S(南)、W(西)、N(北)、CENTER(中)、SE(东南)、SW(西南)、NW(西北)、NE(东北)等方位常量表示fill属性用于设置文本的颜色,默认值为黑色。justify属性用于控制多行文本的对齐方式,其值可以是LEFT、CENTER或RIGHT,默认为LEFT。font属性指定文本字体。例9-4
画布文本显示示例。fromtkinterimport*w=Tk()w.title('文本显示')c=Canvas(w,width=400,height=200,bg="white")c.pack()c.create_rectangle(200,100,201,101,width=8)c.create_text(200,100,text="HelloPython1",\font=("宋体",15,"normal"),anchor=SE)c.create_text(200,100,text="HelloPython2",\font=("宋体",15,"normal"),anchor=SW)c.create_text(200,100,text="HelloPython3",\font=("宋体",15,"normal"),anchor=NE)c.create_text(200,100,text="HelloPython4",\font=("宋体",15,"normal"),anchor=NW)9.3图形的事件处理“事件”(event)指在程序执行过程中发生的操作。例如单击鼠标左键、按下键盘上的某个键等。某个对象可以与特定事件绑定在一起,这样当特定事件发生时,可以调用特定的函数来处理该事件。1.事件绑定使用画布对象的bind()方法或者tag_bind()方法。例如:
c.bind("<Button-1>",canvasF)将画布对象与鼠标左键单击事件<Button-1>进行了绑定。c.tag_bind(t,"<Enter>",textF1)将画布上的文本对象t与鼠标指针进入事件<Enter>进行了绑定。2.事件处理函数
对象与特定事件进行绑定时,需告诉系统当对象发生了指定的事件后该如何处理的函数。例如:canvasF()函数用于处理画布上的鼠标左键单击事件。功能是改变文本t的内容,如果当前内容是"Python!"就变成"Programming!",如果当前是"Programming!"就变成"Python!"。3.主窗口事件循环语句:w.mainloop()作用:进入主窗口的事件循环。系统会自动监控在主窗口上发生的各种事件,并触发相应的处理函数。turtle(海龟)库是turtle绘图体系的Python实现
turtle绘图体系:1969年诞生,主要用于程序设计入门Python语言的标准库之一入门级的图形绘制函数库9.4turtle绘图turtle的原理turtle(海龟)是一种真实的存在有一只海龟,其实在窗体正中心,在画布上游走走过的轨迹形成了绘制的图形海龟由程序控制,可以变换颜色、改变宽度等turtle.setup()函数格式:turtle.setup(width,height,startx,starty)作用:设置主窗体的大小和位置。width:窗口宽度height:窗口高度startx:窗口左侧与屏幕左侧的像素距离starty:窗口顶部与屏幕顶部的像素距离>>>turtle.setup(650,350,200,200)turtle的魅力#PythonDraw.pyimportturtleturtle.setup(650,350,200,200)turtle.penup()turtle.fd(-250)turtle.pendown()turtle.pensize(25)turtle.pencolor("purple")turtle.seth(-40)foriinrange(4):turtle.circle(40,80)turtle.circle(-40,80)turtle.circle(40,80/2)turtle.fd(40)turtle.circle(16,180)turtle.fd(40*2/3)turtle.done()1.导入turtle模块使用turtle绘图,首先需要导入turtle模块,有以下两种方法。>>>importturtle>>>fromturtleimport*importturtle函数调用时使用的语句格式是turtle.circle(10)fromturtleimport*函数调用时使用的语句格式是circle(10)importturtleast函数调用时使用的语句格式是t.circle(10)0102032.turtle绘图属性
turtle绘图有三个要素,分别是位置、方向和画笔。(1)位置是指箭头在Turtle图形窗口中的位置。(2)方向是指箭头的指向,使用left(degree)、right(degree)函数使得箭头分别向左、向右旋转degree度。(3)画笔是指绘制的线条的颜色和宽度。9.4.2画笔控制函数1.turtle.penup()作用:抬起画笔,之后移动画笔不绘制形状。2.turtle.pendown()函数作用:落下画笔,之后移动画笔将绘制形状。3.turtle.pensize(width)函数作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。turtle.pensize(25)4.turtle.pencolor(colorstring)函数或turtle.pencolor((r,g,b))
作用:设置画笔颜色,当无参数输入时返回当前画笔颜色。6.turtle.color(color1,color2)函数作用:同时设置pencolor=color1,fillcolor=color15.turtle.fillcolor(colorstring)函数作用:设置绘制图形的填充颜色7.turtle.begin_fill()函数8.turtle.end_fill()函数作用:准备开始填充图形作用:填充完成9.4.3形状绘制函数1.turtle.fd(distance)函数或turtle.forward(distance)作用:向小海龟当前行进方向前进distance距离;distance为负数时表示向相反方向前进。>>>turtle.fd(40)2.backward(d):与forward()函数相反,控制箭头向后移动,其中d代表移动的距离。forward(d)backward(d)3.goto(x,y):将箭头从当前位置径直移动到坐标为(x,y)的位置,移动后方向也不改变。如果想要移动箭头到(x,y)处理,但不要绘制图形,可以使用up()函数。例如,下列命令绘制一根水平直线。fromturtleimport*reset()#将整个绘图窗口清空并将箭头置于原点(窗口的中心)goto(100,0)#当前位置(0,0)运动到(100,0)位置importturtleturtle.goto(100,100)turtle.goto(100,-100)turtle.goto(-100,-100)turtle.goto(-100,100)turtle.goto(0,0)绝对角度4.turtle.seth(to_angle)函数或turtle.setheading(to_angle)作用:设置小海龟当前行进方向为to_angle,该角度是绝对方向角度值。只改变方向但不行进。
>>>turtle.seth(-40)turtle角度坐标体系turtle.seth(45)turtle.seth(-135)5.turtle.left(angle)函数作用:顺时针移动angle度。该角度为相对角度。只改变方向不移动。6.turtle.right(angle)函数作用:逆时针移动angle度。该角度为相对角度。只改变方向不移动。Turtle角度坐标体系importturtleturtle.left(45)turtle.fd(150)turtle.right(135)turtle.fd(300)turtle.left(135)turtle.fd(150)7.turtle.circle(radius,extent=None)函数作用:根据半径radius绘制extent角度的弧形。radius:弧形半径,当值为正数时,半径在小海龟左侧,
当值为负数时,半径在小海龟右侧。extent:绘制弧形的角度,当不设置参数或参数设置为None 时,绘制整个圆形。turtle.circle(100)turtle.circle(-100,90)例12-2绘制三个同心圆。程序如下:fromturtleimport*foriinrange(3):up()#提起画笔goto(0,-50-i*50)#确定画圆的起点down()#放下画笔circle(50+i*50)#画圆1、下列哪个选项能够使用turtle库绘制一个半圆形?(
)A.turtle.fd(100)B.turtle.circle(100)C.turtle.circle(100,90)D.turtle.circle(-100,180)2.turtle库中控制颜色的函数是(
)。A.pensize()B.pendown()C.goto()D.pencolor()DD3、
下列程序运行后,得到的图形是(
)。fromturtleimport*goto(100,100)A.水平直线B.垂直直线
C.斜线D.只移动坐标不做图4、turtle库中控制顺时针转的函数是()。A.pendown()B.left()C.right()D.pencolor()CC例12-1绘制一个正方形。程序如下:fromturtleimport*color("blue")#定义绘制时画笔的颜色pensize(5)#定义绘制时画笔的线条宽度speed(10)#定义绘图的速度foriinrange(4):#绘出正方形的四条边forward(100)right(90)使用turtle库,绘制一个正方形。请完成以下程序。importturtleastt.pensize(3)foriinrange(4):t.fd(100)_______t.left(90)使用turtle库,绘制一个叠边形,其中,叠边形内角为100度。请完成以下程序。importturtleastt.pensize(2)foriinrange(9):t.fd(180)_______t.right(80)使用turtle库,绘制一个六边形。请完成以下程序。importturtleastt.pensize(3)for________:t.fd(100)t.left(60)iinrange(6)使用turtle库,绘制一个边长为40像素的十二边形。请完成以下程序。importturtleturtle.pensize(2)d=0for______:turtle.fd(40)d+=30turtle.seth(d)iinrange(12)例
使用turtle库,绘制一个六瓣花。程序如下:fromturtleimport*x=50foriinrange(6):circle(x,240)left(60)例12-5使用turtle库绘制红色五角形。程序如下:fromturtleimport*pencolor("red")goto(-100,50)pendown()color("red")begin_fill()foriinrange(5): forward(200) right(144)end_fill()hideturtle()done()例
绘制太阳花,其中画笔颜色为红色,填充颜色为黄色。程序如下:importturtleturtle.color("red","yellow")turtle.begin_fill()foriinrange(50):turtle.forward(200)turtle.right(170)turtle.end_fill()turtle.done()9.5图形绘制应用举例实例一:Python蟒蛇绘制importturtleturtle.setup(650,350,200,200)turtle.penup()turtle.fd(-250)turtle.pendown()turtle.pensize(25)turtle.pencolor("purple")turtle.seth(-40)foriinrange(4):turtle.circle(40,80)turtle.circle(-40,80)turtle.circle(40,80/2)turtle.fd(40)turtle.circle(16,180)turtle.fd(40*2/3)实例二:科赫曲线绘制importturtledefkoch(size,n):ifn==0:turtle.fd(size)else:foranglein[0,60,-120,60]:turtle.left(angle)koch(size/3,n-1)defmain():turtle.setup(600,600)turtle.speed(0)turtle.penup()turtle.goto(-200,-100)turtle.pendown()turtle.pensize(2)level=5koch(400,level)turtle.right(120)koch(400,level)turtle.right(120)koch(400,level)turtle.hideturtle()main()turtle.done()第10章图形用户界面程序设计10.1GUI编程1.窗口与组件在进行GUI开发时,首先需要创建一个顶层窗口。该窗口充当容器的角色,可以存放程序所需的各种组件,例如按钮、下拉框、单选框等。顶层窗口包含了所有的组件,而组件本身也可以作为容器使用,包含其他组件。包含其他组件的组件被称为父组件,而被包含在其中的组件则被称为子组件。2.事件驱动与回调机制事件:用户使用GUI程序进行的操作,如移动鼠标、点击鼠标、按下键盘上的按键等。回调机制:当某个事件发生时,程序将调用对应的事件处理函数并做出相应的响应。事件对应的处理函数被称为回调函数。10.2Tkinter的主要组件使用Tkinter库创建一个GUI程序只需要以下步骤:(1)导入Tkinter模块。(2)创建GUI应用程序的主窗口(顶层窗口)。(3)添加完成程序功能所需要的组件。(4)编写回调函数。(5)进入主事件循环,对用户触发的事件做出响应。10.2.1标签标签(Label)是用来显示图片和文本的组件。在top主窗口中创建标签:label=Label(top,text=属性值)text属性:设置显示的文本例10-1在标签内显示两行文字fromtkinterimport*top=Tk()top.title(u"主窗口")label=Label(top,text="HelloWorld,\nfromTkinter")label.pack()top.mainloop()10.2.2框架框架(Frame)是其他组件的一个容器,通常是用来包含一组控件的主体。frame=Frame(top,属性1=表达式1,属性2=表达式2….)例10-2fromtkinterimport*top=Tk()top.title(u"主窗口")forrelief_settingin["raised","flat","groove","ridge","solid","sunken"]:frame=Frame(top,borderwidth=2,relief=relief_setting)Label(frame,text=relief_setting,width=10).pack()frame.pack(side=LEFT,padx=5,pady=5)top.mainloop()10.2.3按钮在主窗口w中创建了一个按钮控件:btn=Button(w,text="Quit",command=w.quit)Command属性:指定按钮的事件处理函数,将按钮与某个函数或方法关联起来。例10-3fromtkinterimport*top=Tk()top.title(u"主窗口")bt1=Button(top,text=u"禁用",state=DISABLED)bt2=Button(top,text=u"退出",command=top.quit)bt1.pack(side=LEFT)bt2.pack(side=LEFT)top.mainloop()10.2.4输入框输入框(Entry)是用来接收用户文本输入的组件。E1=Entry(f1,width=30)例10-4fromtkinterimport*top=Tk()top.title(u"登录")f1=Frame(top)Label(f1,text=u"用户名").pack(side=LEFT)E1=Entry(f1,width=30)E1.pack(side=LEFT)f1.pack()f2=Frame(top)Label(f2,text=u"密码").pack(side=LEFT)E2=Entry(f2,width=30)E2.pack(side=LEFT)f2.pack()f3=Frame(top)Button(f3,text=u"登录").pack()f3.pack()top.mainloop()10.2.5单选按钮和复选按钮单选按钮(Radiobutton)和复选按钮(Checkbutton)比较:相同点:都是用于用户进行选择输入。区别:前者是互斥性选择,即用户只能从一组选项中选择一个选项;而后者支持用户选择多个选项。(1)单选按钮的创建:需要将这些按钮与一个相同的变量关联起来,以设定或获取单选按钮组当前的选中状态。
r=Radiobutton(f1,text=txt,value=val,variable=choice)(2)复选框的创建:需要将每个选项与一个不同的变量关联起来,以表示每个选项的选中状态。r=Checkbutton(f1,text=txt,variable=ch,command=update_cstr)fromtkinterimport*top=Tk()top.title(u"单选")f1=Frame(top)choice=IntVar(f1)#定义动态绑定变量fortxt,valin[('1',1),('2',2),('3',3)]:#将所有的选项与变量choice绑定起来r=Radiobutton(f1,text=txt,value=val,variable=choice)r.pack()choice.set(1)#设定默认选项Label(f1,text=u"您选择了:").pack()Label(f1,textvariable=choice).pack()#将标签与变量动态绑定起来f1.pack()top.mainloop()例10-5例10-6fromtkinterimport*top=Tk()top.title(u"多选")f1=Frame(top)choice={}#存放绑定变量的字典cstr=StringVar(f1)cstr.set("")defupdate_cstr():selected=[str(i)foriin[1,2,3]ifchoice[i].get()==1]
cstr.set(",".join(selected))fortxt,valin[('1',1),('2',2),('3',3)]:ch=IntVar(f1)#建立与每个选项绑定的变量choice[val]=ch#将绑定的变量加入字典choicer=Checkbutton(f1,text=txt,variable=ch,command=update_cstr)r.pack()Label(f1,text=u"您选择了:").pack()Label(f1,textvariable=cstr).pack()f1.pack()top.mainloop()10.2.6列表框与滚动条列表框(Listbox):用列表的形式展示多个选项以供用户选择。滚动条(Scrollbar):用来处理组件界面上一次性显示不全的情况。scrollbar=Scrollbar(top)#创建滚动条mylist=Listbox(top,yscrollcommand=scrollbar.set)fromtkinterimport*top=Tk()top.title(u"列表框")scrollbar=Scrollbar(top)#创建滚动条scrollbar.pack(side=RIGHT,fill=Y)#设置滚动条布局#将列表与滚动条绑定,并加入主窗体mylist=Listbox(top,yscrollcommand=scrollbar.set)forlineinrange(20):mylist.insert(END,str(line))mylist.pack(side=LEFT,fill=BOTH)#设置列表布局scrollbar.config(command=mylist.yview)#将滚动条行为与列表绑定mainloop()例10-710.3对象的布局方式10.3.1pack布局管理器pack布局管理器将所有控件组织为一行或一列,控件的添加顺序决定了它们在父控件中的位置。side属性:改变控件的排列位置,LEFT表示左侧对齐,RIGHT表示右侧对齐。fill属性:设置填充空间。 X:在水平方向填充, Y:在垂直方向填充, BOTH:在水平和垂直两个方向上填充, NONE:不填充。ipadx/ipady:用于设置控件内部在水平/垂直方向的间距。padx/pady用于设置控件外部在水平/垂直方向的间距。expand属性:指定如何使用额外的“空白”空间。 =1:随着父控件的大小变化而变化, =0:子控件大小不能扩展。fromtkinterimport*w=Tk()w.geometry('250x100')#改变w的大小为250x100Lbl1=Label(w,text='北京',bg='yellow3')Lbl1.pack(expand=1,side=LEFT,ipadx=20)Lbl2=Label(w,text='天津',bg='red')Lbl2.pack(fill=BOTH,expand=1,side=LEFT,padx=10)Lbl3=Label(w,text='上海',bg='green')Lbl3.pack(fill=X,expand=0,side=RIGHT,padx=10)w.mainloop()例10-810.3.2grid布局管理器grid布局管理器将窗口或框架视为一个由行和列构成的二维表格,并将控件放入行列交叉处的单元格中。row:指定控件所要放置的行编号。column:指定控件所要放置的列编号。Sticky:用来改变对齐方式。如N、S、E、W、CENTER表示上、下、左、右、中心点,还可以取NE、SE、NW、SW,表示右上角、右下角、左上角、左下角。Rowspan:指定在行方向上的跨度。Columnspan:指定在列方向上的跨度。例10-9fromtkinterimport*w=Tk()var1=IntVar()var2=IntVar()Label(w,text="姓名").grid(row=0,column=0,sticky=W)Label(w,text="住址").grid(row=1,column=0,sticky=W)Entry(w).grid(row=0,column=1)Entry(w).grid(row=1,column=1)lframe=LabelFrame(w,text='性别')radiobutton1=Radiobutton(lframe,text='男',variable=var1)radiobutton2=Radiobutton(lframe,text='女',variable=var2)lframe.grid(sticky=W)radiobutton1.grid(sticky=W)radiobutton2.grid(sticky=W)photo=PhotoImage(file="e:\\mypython\\photo.png")label=Label(image=photo)label.image=photolabel.grid(row=2,column=1,sticky=W+E+N+S,padx=5,pady=5)w.mainloop()10.3.3place布局管理器place布局管理器可以直接指定控件在父控件(窗口或框架)中的位置坐标。为使用这种布局,只需先创建控件,再调用控件的place()方法,并使用该方法的选项x和y设定坐标。父控件的坐标系以左上角为原点(0,0),x轴方向向右,y轴方向向下。>>>Label(w,text="Hello").place(x=0,y=0)>>>Label(w,text="World").place(x=199,y=199,anchor=SE)>>>Label(w,text="Hello").place(relx=0.25,rely=0.5,anchor=SW)10.4对话框10.4.1自定义对话框主要步骤:(1)先创建顶层窗口对象(2)添加所需的按钮和其他控件。例10-10简易对话框应用示例。fromtkinterimport*defMsg():top=Toplevel(width=400,height=200)Label(top,text='Python').pack()w=Tk()Button(w,text='OK',command=Msg).pack()w.mainloop()10.4.2标准对话框1.messagebox子模块
提供一系列用于显示信息或进行简单对话的消息框,可通过调用函数askyesno()、askquestion()、askyesnocancel()、askokcancel()、askretrycancel()、showerror()、showinfo()和showwarning()来创建。fromtkinter.messageboximport*ask=askyesno(title='消息框演示',message='是否继续?')ifask:showinfo(title='信息提示',message='继续!')else:showinfo(title='信息提示',message='终止!')例子:2.filedialog子模块
提供用于文件浏览、打开和保存的对话框,可通过调用函数askopenfilename()、asksaveasfilename()等函数来创建。fromtkinter.filedialogimport*askopenfilename(title='文件对话框',\filetypes=[('Python源文件','.py')])例子:打开对话框3.colorchooser子模块提供用于选择颜色的对话框,可通过函数askcolor()来创建。fromtkinter.colorchooserimport*askcolor(title='颜色对话框')10.5事件处理10.5.1事件处理程序1.事件的描述一般形式是:<修饰符>-<类型符>-<细节符>修饰符:描述鼠标的单击、双击,以及键盘组合按键等情况。类型符:事件类型,最常用的类型有分别表示鼠标事件和键盘事件的Button和Key。细节符:具体的鼠标键或键盘按键,如鼠标的左、中、右三个键分别用1、2、3表示,键盘按键用相应字符或按键名称表示。例如:<Double-Button-1>(1)常用鼠标事件<ButtonPress-1>:按下鼠标左键,可简写为<Button-1>或<1>。类似的有<Button-2>(按下鼠标中键)和<Button-3>(按下鼠标右键)。<B1-Motion>:按下鼠标左键并移动鼠标。类似的有<B2-Motion>和<B3-Motion>。<Double-Button-1>:双击鼠标左键。<Enter>:鼠标指针进入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019高三历史人民版一轮教师用书专题12第23讲 百家争鸣和汉代儒学
- 成品油产品质量抽查检验实施方案
- k线图经典图解全集
- JJF1069-2012法定计量检定机构考核规范
- PAT川菜培训课前考卷(B)
- 癌痛诊疗规范(2022版)
- 二手机动车买卖协议2024年
- 2024年投票权委托协议书模板范本
- 2024年客运从业资格证视频
- 2024年益阳驾校资格证模拟考试题
- 期中试卷(试题)-2024-2025学年三年级上册数学青岛版
- 期中押题卷(试题)-2024-2025学年数学六年级上册北师大版
- 少儿美术课件国家宝藏系列《云肩》
- 教师业务考试试题
- 5.1 延续文化血脉 课件-2024-2025学年统编版道德与法治九年级上册-2
- 2024年环磷酰胺原料药项目发展计划
- 2024-2030年中国CCUS技术行业现状调查与前景策略分析研究报告
- 2024-2025形势与政策:七十五载砥砺奋进创辉煌 中国式现代化继往开来兴伟业
- 国开(河北)2024年《商务谈判实务》形成性考核1-4答案
- 二年级数学上册教案 4、除法的初步认识 苏教版
- 国风漫画人物课程设计
评论
0/150
提交评论