Python基础8.ppt

上传人:hyn****60 文档编号:70969947 上传时间:2023-01-31 格式:PPT 页数:81 大小:195KB
返回 下载 相关 举报
Python基础8.ppt_第1页
第1页 / 共81页
Python基础8.ppt_第2页
第2页 / 共81页
点击查看更多>>
资源描述

《Python基础8.ppt》由会员分享,可在线阅读,更多相关《Python基础8.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、使用基本的控件使用基本的控件n nwxPython工具包提供了多种不同的窗口部工具包提供了多种不同的窗口部件,包括了本章所提到的基本控件。我们件,包括了本章所提到的基本控件。我们涉及静态文本、可编辑的文本、按钮、微涉及静态文本、可编辑的文本、按钮、微调、滑块、复选框、单选按钮、选择器、调、滑块、复选框、单选按钮、选择器、列表框、组合框和标尺。列表框、组合框和标尺。静态文本静态文本n n在在在在wxPythonwxPython中,使用类中,使用类中,使用类中,使用类wx.StaticTextwx.StaticText来完成。来完成。来完成。来完成。n n在在在在wx.StaticTextwx.S

2、taticText中,你能够改变文本的对齐方式、中,你能够改变文本的对齐方式、中,你能够改变文本的对齐方式、中,你能够改变文本的对齐方式、字体和颜色。简单的静态文本控件可以包含多行字体和颜色。简单的静态文本控件可以包含多行字体和颜色。简单的静态文本控件可以包含多行字体和颜色。简单的静态文本控件可以包含多行文本,但是你不能处理多种字体或样式。处理多文本,但是你不能处理多种字体或样式。处理多文本,但是你不能处理多种字体或样式。处理多文本,但是你不能处理多种字体或样式。处理多种字体或样式,要使用更精细的文本控件,如种字体或样式,要使用更精细的文本控件,如种字体或样式,要使用更精细的文本控件,如种字体

3、或样式,要使用更精细的文本控件,如wx.html.HTMLWindowwx.html.HTMLWindow。为了在静态文本控件中。为了在静态文本控件中。为了在静态文本控件中。为了在静态文本控件中显示多行文本,我们要包括其中有换行符的字符显示多行文本,我们要包括其中有换行符的字符显示多行文本,我们要包括其中有换行符的字符显示多行文本,我们要包括其中有换行符的字符串,并使控件的大小足够显示所有的文本。串,并使控件的大小足够显示所有的文本。串,并使控件的大小足够显示所有的文本。串,并使控件的大小足够显示所有的文本。n nwx.StaticTextwx.StaticText窗口不会接受或响应鼠标事件。

4、窗口不会接受或响应鼠标事件。窗口不会接受或响应鼠标事件。窗口不会接受或响应鼠标事件。静态文本静态文本n nimportimportwxwxn nclassclassStaticTextFrame(wx.FrameStaticTextFrame(wx.Frame):):n ndef_def_init_(selfinit_(self):):n nwx.Frame._init_(selfwx.Frame._init_(self,None,-1,StaticTextExample,None,-1,StaticTextExample,n nsize=(400,300)size=(400,300)n np

5、anel=panel=wx.Panel(selfwx.Panel(self,-1),-1)n n#这是一个基本的静态文本这是一个基本的静态文本这是一个基本的静态文本这是一个基本的静态文本n nwx.StaticText(panelwx.StaticText(panel,-1,”Thisisanexampleofstatictext”,-1,”Thisisanexampleofstatictext”,n n(100,10)(100,10)n n#指定了前景色和背景色的静态文本指定了前景色和背景色的静态文本指定了前景色和背景色的静态文本指定了前景色和背景色的静态文本n nrev=rev=wx.St

6、aticText(panelwx.StaticText(panel,-1,”StaticTextWithReversedColors”,-1,”StaticTextWithReversedColors”,n n(100,30)(100,30)n nrev.SetForegroundColour(whiterev.SetForegroundColour(white)n nrev.SetBackgroundColour(blackrev.SetBackgroundColour(black)n n静态文本静态文本n n#指定居中对齐的的静态文本指定居中对齐的的静态文本指定居中对齐的的静态文本指定居中

7、对齐的的静态文本n ncenter=center=wx.StaticText(panelwx.StaticText(panel,-1,”aligncenter”,(100,50),-1,”aligncenter”,(100,50),n n(160,-1),(160,-1),wx.ALIGN_CENTERwx.ALIGN_CENTER)n ncenter.SetForegroundColour(whitecenter.SetForegroundColour(white)n ncenter.SetBackgroundColour(blackcenter.SetBackgroundColour(bl

8、ack)n n#指定右对齐的静态文本指定右对齐的静态文本指定右对齐的静态文本指定右对齐的静态文本n nright=right=wx.StaticText(panelwx.StaticText(panel,-1,”alignright”,(100,70),-1,”alignright”,(100,70),n n(160,-1),(160,-1),wx.ALIGN_RIGHTwx.ALIGN_RIGHT)n nright.SetForegroundColour(whiteright.SetForegroundColour(white)n nright.SetBackgroundColour(bla

9、ckright.SetBackgroundColour(black)n n#指定新字体的静态文本指定新字体的静态文本指定新字体的静态文本指定新字体的静态文本n nstrstr=”Youcanalsochangethefont.”=”Youcanalsochangethefont.”n ntext=text=wx.StaticText(panelwx.StaticText(panel,-1,-1,strstr,(20,100),(20,100)n nfont=wx.Font(18,font=wx.Font(18,wx.DECORATIVEwx.DECORATIVE,wx.ITALICwx.ITA

10、LIC,wx.NORMALwx.NORMAL)n n176/565176/565text.SetFont(fonttext.SetFont(font)n n#显示多行文本显示多行文本显示多行文本显示多行文本n n 静态文本静态文本n nwx.StaticText(panelwx.StaticText(panel,-1,”Yourtext,-1,”Yourtextncanncanbesplitn”besplitn”n n”overmultiplelines”overmultiplelinesnnevennnevenblankones”,(20,150)blankones”,(20,150)n n

11、#显示对齐的多行文本显示对齐的多行文本显示对齐的多行文本显示对齐的多行文本n nwx.StaticText(panelwx.StaticText(panel,-1,”Multi-linetext,-1,”Multi-linetextncanncanalson”alson”n n”berightaligned”berightalignednnevennnevenwithablank”,(220,150),withablank”,(220,150),n nstyle=style=wx.ALIGN_RIGHTwx.ALIGN_RIGHT)n nif_name_=_main_:if_name_=_ma

12、in_:n napp=app=wx.PySimpleAppwx.PySimpleApp()()n nframe=frame=StaticTextFrameStaticTextFrame()()n nframe.Showframe.Show()()n napp.MainLoopapp.MainLoop()()wx.StaticText的构造函数的构造函数n nwx.StaticText(parentwx.StaticText(parent,id,label,pos=,id,label,pos=wx.DefaultPoswx.DefaultPositionition,size=,size=wx.D

13、efaultSizewx.DefaultSize,style=0,name=”,style=0,name=”staticstaticTextText”)”)n nwx.ALIGN_CENTERwx.ALIGN_CENTER:静态文本位于静态文本控:静态文本位于静态文本控:静态文本位于静态文本控:静态文本位于静态文本控件的中心。件的中心。件的中心。件的中心。n nwx.ALIGN_LEFTwx.ALIGN_LEFT:文本在窗口部件中左对齐。:文本在窗口部件中左对齐。:文本在窗口部件中左对齐。:文本在窗口部件中左对齐。这是默认的样式。这是默认的样式。这是默认的样式。这是默认的样式。n nwx.AL

14、IGN_RIGHTwx.ALIGN_RIGHT:文本在窗口部件中右对齐。:文本在窗口部件中右对齐。:文本在窗口部件中右对齐。:文本在窗口部件中右对齐。n nwx.ST_NO_AUTORESIZEwx.ST_NO_AUTORESIZE:如果使用了这个样:如果使用了这个样:如果使用了这个样:如果使用了这个样式,那么在使用了式,那么在使用了式,那么在使用了式,那么在使用了 SetLabelSetLabel()()改变文本之后,静改变文本之后,静改变文本之后,静改变文本之后,静态文本控件不将自我调整尺寸。你应结合使用一态文本控件不将自我调整尺寸。你应结合使用一态文本控件不将自我调整尺寸。你应结合使用一

15、态文本控件不将自我调整尺寸。你应结合使用一个居中或右对齐的控件来保持对齐。个居中或右对齐的控件来保持对齐。个居中或右对齐的控件来保持对齐。个居中或右对齐的控件来保持对齐。输入文本输入文本n n超越纯粹显示静态文本,我们将开始讨论超越纯粹显示静态文本,我们将开始讨论当输入文本时的用户交互。当输入文本时的用户交互。wxPython的文的文本域窗口部件的类是本域窗口部件的类是wx.TextCtrl,它允许,它允许单行和多行文本输入。它也可以作为密码单行和多行文本输入。它也可以作为密码输入控件,掩饰所按下的按键。如果平台输入控件,掩饰所按下的按键。如果平台支持的话,支持的话,wx.TextCtrl也提

16、供丰富格式文也提供丰富格式文本的显示,通过使用所定义和显示的多文本的显示,通过使用所定义和显示的多文本样式。本样式。输入文本输入文本n nimportwxn nclassTextFrame(wx.Frame):n ndef_init_(self):n nwx.Frame._init_(self,None,-1,TextEntryExample,size=(300,100)n npanel=wx.Panel(self,-1)n nbasicLabel=wx.StaticText(panel,-1,”BasicControl:”)输入文本输入文本n nbasicText=wx.TextCtrl(p

17、anel,-1,”Iveenteredsometext!”,size=(175,-1)n nbasicText.SetInsertionPoint(0)n npwdLabel=wx.StaticText(panel,-1,”Password:”)n npwdText=wx.TextCtrl(panel,-1,”password”,size=(175,-1),style=wx.TE_PASSWORD)输入文本输入文本n nsizersizer=wx.FlexGridSizer(colswx.FlexGridSizer(cols=2,=2,hgaphgap=6,=6,vgapvgap=6)=6)n

18、 nsizer.AddMany(basicLabelsizer.AddMany(basicLabel,basicTextbasicText,pwdLabelpwdLabel,pwdTextpwdText)n npanel.SetSizer(sizerpanel.SetSizer(sizer)n nif_name_=_main_:if_name_=_main_:n napp=app=wx.PySimpleAppwx.PySimpleApp()()n nframe=frame=TextFrameTextFrame()()n nframe.Showframe.Show()()n napp.MainL

19、oopapp.MainLoop()()输入文本输入文本n nwx.TextCtrl(parent,id,value=”,pos=wx.DefaultPosition,size=wx.DefaultSize,style=0,validator=wx.DefaultValidator,name=wx.TextCtrlNameStr)value是显示在该控件中的初始文本。是显示在该控件中的初始文本。n nvalidator参数用于一个参数用于一个wx.Validator。validator通常用于过虑数据以确保只能键入通常用于过虑数据以确保只能键入要接受的数据。要接受的数据。输入文本输入文本n nA

20、ppendText(textAppendText(text):在尾部添加文本。:在尾部添加文本。:在尾部添加文本。:在尾部添加文本。n nClear()Clear():重置控件中的文本为:重置控件中的文本为:重置控件中的文本为:重置控件中的文本为“”“”。并且生成。并且生成。并且生成。并且生成一个文本更新事件。一个文本更新事件。一个文本更新事件。一个文本更新事件。n nEmulateKeyPress(eventEmulateKeyPress(event):产生一个按键事件,:产生一个按键事件,:产生一个按键事件,:产生一个按键事件,插入与事件相关联的控制符,就如同实际的按键插入与事件相关联的控

21、制符,就如同实际的按键插入与事件相关联的控制符,就如同实际的按键插入与事件相关联的控制符,就如同实际的按键发生了。发生了。发生了。发生了。n nGetInsertionPointGetInsertionPoint()()n nSetInsertionPoint(posSetInsertionPoint(pos)n nSetInsertionPointEndSetInsertionPointEnd()():得到或设置插入点的位:得到或设置插入点的位:得到或设置插入点的位:得到或设置插入点的位置,位置是整型的索引值。控件的开始位置是置,位置是整型的索引值。控件的开始位置是置,位置是整型的索引值。控

22、件的开始位置是置,位置是整型的索引值。控件的开始位置是 0 0。输入文本输入文本n nGetRange(fromGetRange(from,to),to):返回控件中位置索引范围内的字符串。:返回控件中位置索引范围内的字符串。:返回控件中位置索引范围内的字符串。:返回控件中位置索引范围内的字符串。n nGetSelectionGetSelection()()n nGetStringSelectionGetStringSelection()()n nSetSelection(fromSetSelection(from,to),to):GetSelectionGetSelection()()以元组

23、的形式返回当前所选择以元组的形式返回当前所选择以元组的形式返回当前所选择以元组的形式返回当前所选择的文本的起始位置的索引值(开始,结束)。的文本的起始位置的索引值(开始,结束)。的文本的起始位置的索引值(开始,结束)。的文本的起始位置的索引值(开始,结束)。GetStringSelectionGetStringSelection()()得得得得到所选择的字符串。到所选择的字符串。到所选择的字符串。到所选择的字符串。SetSelection(fromSetSelection(from,to),to)设置选择的文本。设置选择的文本。设置选择的文本。设置选择的文本。n nGetValueGetVal

24、ue()()n nSetValue(valueSetValue(value):SetValueSetValue()()改变控件中的全部文本。改变控件中的全部文本。改变控件中的全部文本。改变控件中的全部文本。GetValueGetValue()()返返返返回控件中所有的字符串。回控件中所有的字符串。回控件中所有的字符串。回控件中所有的字符串。n nRemove(fromRemove(from,to),to):删除指定范围的文本。:删除指定范围的文本。:删除指定范围的文本。:删除指定范围的文本。n nReplace(fromReplace(from,to,value),to,value):用给定的

25、值替换掉指定范围内的文本。这:用给定的值替换掉指定范围内的文本。这:用给定的值替换掉指定范围内的文本。这:用给定的值替换掉指定范围内的文本。这可以改变文本的长度。可以改变文本的长度。可以改变文本的长度。可以改变文本的长度。n nWriteText(textWriteText(text):类似于:类似于:类似于:类似于 AppendTextAppendText()(),只是写入的文本被放置在当,只是写入的文本被放置在当,只是写入的文本被放置在当,只是写入的文本被放置在当前的插入点。前的插入点。前的插入点。前的插入点。多行或样式文本控件多行或样式文本控件n n使用使用wx.TE_MULTILINE

26、样式标记创建一样式标记创建一个多行文本控件。如果本地窗口控件支持个多行文本控件。如果本地窗口控件支持样式,那么你可以改变被控件管理的文本样式,那么你可以改变被控件管理的文本的字体和颜色样式,这有时被称为丰富格的字体和颜色样式,这有时被称为丰富格式文本。对于另外的一些平台,设置样式式文本。对于另外的一些平台,设置样式的调用被忽视掉了。的调用被忽视掉了。多行或样式文本控件多行或样式文本控件n nimportimportwxwxn nclassclassTextFrame(wx.FrameTextFrame(wx.Frame):):n ndef_def_init_(selfinit_(self):)

27、:n nwx.Frame._init_(selfwx.Frame._init_(self,None,-,None,-1,TextEntryExample,size=(300,250)1,TextEntryExample,size=(300,250)n npanel=panel=wx.Panel(selfwx.Panel(self,-1),-1)n nmultiLabelmultiLabel=wx.StaticText(panelwx.StaticText(panel,-1,”Multi-line”),-1,”Multi-line”)n nmultiTextmultiText=wx.TextCt

28、rl(panelwx.TextCtrl(panel,-1,-1,n n”Hereisa”Hereisalooooooooooooooonglooooooooooooooonglineoftextsetintlineoftextsetinthecontrol.hecontrol.nnnn”,”Seethatitwrapped,andthatthislineis”,”Seethatitwrapped,andthatthislineisafterablank”,size=(200,100),style=afterablank”,size=(200,100),style=wx.TE_MULTILINE

29、wx.TE_MULTILINE)#创建一个文本控件创建一个文本控件创建一个文本控件创建一个文本控件n nmultiText.SetInsertionPoint(0)#multiText.SetInsertionPoint(0)#设置插入点设置插入点设置插入点设置插入点多行或样式文本控件多行或样式文本控件n n richLabelrichLabel=wx.StaticText(panelwx.StaticText(panel,-1,”RichText”),-1,”RichText”)n n richTextrichText=wx.TextCtrl(panelwx.TextCtrl(panel,-

30、,-1,”Ifsupportedbythenativecontrol,thisisreversed,and1,”Ifsupportedbythenativecontrol,thisisreversed,andthisisadifferentfont.”,size=(200,100),style=wx.TE_MUthisisadifferentfont.”,size=(200,100),style=wx.TE_MULTILINE|wx.TE_RICH2)#LTILINE|wx.TE_RICH2)#创建丰富文本控件创建丰富文本控件创建丰富文本控件创建丰富文本控件n n richText.SetIn

31、sertionPoint(0)richText.SetInsertionPoint(0)n nrichText.SetStyle(44,52,richText.SetStyle(44,52,wx.TextAttr(“whitewx.TextAttr(“white”,”black”)#”,”black”)#设置文本样式设置文本样式设置文本样式设置文本样式n n points=points=richText.GetFont().GetPointSizerichText.GetFont().GetPointSize()()n nf=f=wx.Font(pointswx.Font(points+3,+

32、3,wx.ROMANwx.ROMAN,wx.ITALICwx.ITALIC,wx.BOLwx.BOLD D,True)#,True)#创建一个字体创建一个字体创建一个字体创建一个字体多行或样式文本控件多行或样式文本控件n nrichText.SetStyle(68,82,wx.TextAttr(“blue”,wx.NullColour,f)#用新字体设用新字体设置样式置样式n nsizer=wx.FlexGridSizer(cols=2,hgap=6,vgap=6)n nsizer.AddMany(multiLabel,multiText,richLabel,richText)n npanel

33、.SetSizer(sizer)多行或样式文本控件多行或样式文本控件n nif_name_=_main_:n napp=wx.PySimpleApp()n nframe=TextFrame()n nframe.Show()n napp.MainLoop()多行或样式文本控件多行或样式文本控件n n除了除了除了除了wx.TE_MULTILINEwx.TE_MULTILINE,还有另外的样式标记,还有另外的样式标记,还有另外的样式标记,还有另外的样式标记,它们只在一个多行或丰富文本控件的上下文中有它们只在一个多行或丰富文本控件的上下文中有它们只在一个多行或丰富文本控件的上下文中有它们只在一个多行或

34、丰富文本控件的上下文中有意义。意义。意义。意义。n nwx.HSCROLLwx.HSCROLL:如果文本控件是多行的,并且如:如果文本控件是多行的,并且如:如果文本控件是多行的,并且如:如果文本控件是多行的,并且如果该样式被声明了,那么长的行将不会自动换行,果该样式被声明了,那么长的行将不会自动换行,果该样式被声明了,那么长的行将不会自动换行,果该样式被声明了,那么长的行将不会自动换行,并显示水平滚动条。该选项在并显示水平滚动条。该选项在并显示水平滚动条。该选项在并显示水平滚动条。该选项在 GTK+GTK+中被忽略。中被忽略。中被忽略。中被忽略。n nwx.TE_AUTO_URLwx.TE_A

35、UTO_URL:如果丰富文本选项被设置:如果丰富文本选项被设置:如果丰富文本选项被设置:如果丰富文本选项被设置并且平台支持的话,那么当用户的鼠标位于文本并且平台支持的话,那么当用户的鼠标位于文本并且平台支持的话,那么当用户的鼠标位于文本并且平台支持的话,那么当用户的鼠标位于文本中的一个中的一个中的一个中的一个 URLURL上或在该上或在该上或在该上或在该 URLURL上敲击时,这个样上敲击时,这个样上敲击时,这个样上敲击时,这个样式将导致一个事件被生成。式将导致一个事件被生成。式将导致一个事件被生成。式将导致一个事件被生成。n nwx.TE_DONTWRAPwx.TE_DONTWRAP:wx.

36、HSCROLLwx.HSCROLL 的别名。的别名。的别名。的别名。多行或样式文本控件多行或样式文本控件n nwx.TE_LINEWRAPwx.TE_LINEWRAP:对于太长的行,以字符为:对于太长的行,以字符为:对于太长的行,以字符为:对于太长的行,以字符为界换行。某些操作系统可能会忽略该样式。界换行。某些操作系统可能会忽略该样式。界换行。某些操作系统可能会忽略该样式。界换行。某些操作系统可能会忽略该样式。n nwx.TE_MULTILINEwx.TE_MULTILINE:文本控件将显示多行。:文本控件将显示多行。:文本控件将显示多行。:文本控件将显示多行。n nwx.TE_RICHwx.

37、TE_RICH:用于:用于:用于:用于 WindowsWindows下,丰富文本控件下,丰富文本控件下,丰富文本控件下,丰富文本控件用作基本的窗口部件。这允许样式文本的使用。用作基本的窗口部件。这允许样式文本的使用。用作基本的窗口部件。这允许样式文本的使用。用作基本的窗口部件。这允许样式文本的使用。n nwx.TE_RICH2wx.TE_RICH2:用于:用于:用于:用于 WindowsWindows下,把最新版本下,把最新版本下,把最新版本下,把最新版本的丰富文本控件用作基本的窗口部件。的丰富文本控件用作基本的窗口部件。的丰富文本控件用作基本的窗口部件。的丰富文本控件用作基本的窗口部件。n

38、nwx.TE_WORDWRAPwx.TE_WORDWRAP:对于太长的行,以单词:对于太长的行,以单词:对于太长的行,以单词:对于太长的行,以单词为界换行。许多操作系统会忽略该样式。为界换行。许多操作系统会忽略该样式。为界换行。许多操作系统会忽略该样式。为界换行。许多操作系统会忽略该样式。多行或样式文本控件多行或样式文本控件n n用在用在wx.TextCtrl窗口部件中的文本样式是窗口部件中的文本样式是类类wx.TextAttr的例。的例。响应文本事件响应文本事件n n有一个由有一个由wx.TextCtrl窗口部件产生的命令窗口部件产生的命令事件,你可能想用它。你需要把相关事件事件,你可能想用

39、它。你需要把相关事件传递给传递给Bind方法以捕获该事件,如下所示:方法以捕获该事件,如下所示:n nframe.Bind(wx.EVT_TEXT,frame.OnText,text)响应文本事件响应文本事件n nEVT_TEXTEVT_TEXT:当控件中的文本改变时产生该事件。文本:当控件中的文本改变时产生该事件。文本:当控件中的文本改变时产生该事件。文本:当控件中的文本改变时产生该事件。文本因用户的输入或在程序中使用因用户的输入或在程序中使用因用户的输入或在程序中使用因用户的输入或在程序中使用 SetValueSetValue()()而被改变,都要而被改变,都要而被改变,都要而被改变,都要

40、产生该事件。产生该事件。产生该事件。产生该事件。n nEVT_TEXT_ENTEREVT_TEXT_ENTER:当用户在一个:当用户在一个:当用户在一个:当用户在一个 wx.TE_PROCESS_ENTERwx.TE_PROCESS_ENTER 样式的文本控件中按下了回车样式的文本控件中按下了回车样式的文本控件中按下了回车样式的文本控件中按下了回车键时,产生该事件。键时,产生该事件。键时,产生该事件。键时,产生该事件。n nEVT_TEXT_URLEVT_TEXT_URL:如果在:如果在:如果在:如果在 WindowsWindows系统上,系统上,系统上,系统上,wx.TE_RICHwx.TE

41、_RICH 或或或或 wx.TE_RICH2wx.TE_RICH2样式被设置了,并且样式被设置了,并且样式被设置了,并且样式被设置了,并且 wx.TE_AUTO_URLwx.TE_AUTO_URL 样式也被设置了,那么当在文本控件样式也被设置了,那么当在文本控件样式也被设置了,那么当在文本控件样式也被设置了,那么当在文本控件内的内的内的内的 URLURL上发生了一个鼠标事件时,该事件被触发。上发生了一个鼠标事件时,该事件被触发。上发生了一个鼠标事件时,该事件被触发。上发生了一个鼠标事件时,该事件被触发。n nEVT_TEXT_MAXLENEVT_TEXT_MAXLEN:如果使用:如果使用:如果

42、使用:如果使用 SetMaxLengthSetMaxLength()()指定指定指定指定了该控件的最大长度,那么当用户试图输入更长的字符串了该控件的最大长度,那么当用户试图输入更长的字符串了该控件的最大长度,那么当用户试图输入更长的字符串了该控件的最大长度,那么当用户试图输入更长的字符串时,该事件被触发。你可能会用这个,例如,这时给用户时,该事件被触发。你可能会用这个,例如,这时给用户时,该事件被触发。你可能会用这个,例如,这时给用户时,该事件被触发。你可能会用这个,例如,这时给用户显示一个警告消息。显示一个警告消息。显示一个警告消息。显示一个警告消息。按钮按钮n n在在wxPython中有很

43、多不同类型的按钮。这中有很多不同类型的按钮。这一节,我们将讨论文本按钮、位图按钮、一节,我们将讨论文本按钮、位图按钮、开关按钮(开关按钮(togglebuttons)和通用)和通用(generic)按钮。)按钮。按钮按钮n nimportimportwxwxn nclassclassButtonFrame(wx.FrameButtonFrame(wx.Frame):):n ndef_def_init_(selfinit_(self):):n nwx.Frame._init_(selfwx.Frame._init_(self,None,-,None,-1,ButtonExample,size=(

44、300,100)1,ButtonExample,size=(300,100)n npanel=panel=wx.Panel(selfwx.Panel(self,-1),-1)n nself.buttonself.button=wx.Button(panelwx.Button(panel,-,-1,”Hello”,pos=(50,20)1,”Hello”,pos=(50,20)n nself.Bind(wx.EVT_BUTTONself.Bind(wx.EVT_BUTTON,self.OnClickself.OnClick,seself.buttonlf.button)n nself.butto

45、n.SetDefaultself.button.SetDefault()()按钮按钮n ndefOnClick(self,event):n nself.button.SetLabel(“Clicked”)n nn nif_name_=_main_:n napp=wx.PySimpleApp()n nframe=ButtonFrame()n nframe.Show()n napp.MainLoop()按钮按钮n nwx.Button的构造函数类似于我们已经看到的构造函数类似于我们已经看到过的,如下所示:过的,如下所示:n nwx.Button(parent,id,label,pos,size=w

46、xDefaultSize,style=0,validator,name=”button”)按钮按钮n n参数参数label是显示在按钮上的文本。它可以是显示在按钮上的文本。它可以在程序运行期间使用在程序运行期间使用SetLabel()来改变,并来改变,并且使用且使用GetLabel()来获取。来获取。n nGetDefaultSize()返回系统默认按钮的尺寸返回系统默认按钮的尺寸(对于框架间的一致性是有用的);(对于框架间的一致性是有用的);SetDefault()设置按钮为对话框或框架的默认按钮。默设置按钮为对话框或框架的默认按钮。默认按钮的绘制不同于其它按钮,它在对话认按钮的绘制不同于其

47、它按钮,它在对话框获得焦点时,通常按下回车键被激活。框获得焦点时,通常按下回车键被激活。按钮按钮n nwx.Buttonwx.Button类有一个跨平台的样式标记:类有一个跨平台的样式标记:类有一个跨平台的样式标记:类有一个跨平台的样式标记:wx.BU_EXACTFITwx.BU_EXACTFIT。如果定义了这个标记,那么。如果定义了这个标记,那么。如果定义了这个标记,那么。如果定义了这个标记,那么按钮就不把系统默认的尺寸作为最小的尺寸,而按钮就不把系统默认的尺寸作为最小的尺寸,而按钮就不把系统默认的尺寸作为最小的尺寸,而按钮就不把系统默认的尺寸作为最小的尺寸,而是把能够恰好填充标签的尺寸作为

48、最小尺寸。如是把能够恰好填充标签的尺寸作为最小尺寸。如是把能够恰好填充标签的尺寸作为最小尺寸。如是把能够恰好填充标签的尺寸作为最小尺寸。如果本地窗口部件支持的话,你可以使用标记果本地窗口部件支持的话,你可以使用标记果本地窗口部件支持的话,你可以使用标记果本地窗口部件支持的话,你可以使用标记n nwx.BU_LEFTwx.BU_LEFT,wx.BU_RIGHTwx.BU_RIGHT,wx.BU_TOPwx.BU_TOP,和和和和 wx.BU_BOTTOMwx.BU_BOTTOM来改变按钮中标签的对齐方式。来改变按钮中标签的对齐方式。来改变按钮中标签的对齐方式。来改变按钮中标签的对齐方式。每个标记

49、对齐标签到边,该边你根据标记的名字每个标记对齐标签到边,该边你根据标记的名字每个标记对齐标签到边,该边你根据标记的名字每个标记对齐标签到边,该边你根据标记的名字可以知道。正如我们在第一部分中所讨论过的,可以知道。正如我们在第一部分中所讨论过的,可以知道。正如我们在第一部分中所讨论过的,可以知道。正如我们在第一部分中所讨论过的,wx.Buttonwx.Button在被敲击时触发一个命令事件,事件类在被敲击时触发一个命令事件,事件类在被敲击时触发一个命令事件,事件类在被敲击时触发一个命令事件,事件类型是型是型是型是EVT_BUTTONEVT_BUTTON。位图按钮位图按钮n n在在wxPython

50、中,使用类中,使用类wx.BitmapButton来来创建一个位图按钮。处理一个创建一个位图按钮。处理一个wx.BitmapButton的代码是与通用按钮的代码的代码是与通用按钮的代码非常类似。非常类似。位图按钮位图按钮n nimportimportwxwxn nclassclassBitmapButtonFrame(wx.FrameBitmapButtonFrame(wx.Frame):):n ndef_def_init_(selfinit_(self):):n nwx.Frame._init_(selfwx.Frame._init_(self,None,-,None,-1,BitmapBu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁